VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/02/03(Tue) 12:40
投稿者おじん
URL
タイトルコマンドラインでコピーしたい

ここでのサンプルを参考に下記のようにアレンジして実行しましたがうまくコピーされません。
1.このような使い方はできないのでしょうか?
2.複数ファイルをコピーしたいのですがファイル数の制限はありますか。コマンドの文字数かも?
3.また、実行後にDOS Windowを閉じる方法を教えてください。Shell (cmdTxt,0)でも?
よろしくお願いいたします。

'フォームで
    Dim inP$
    Dim inFile()
    Dim outFile$

    inP = "c:\my Documment\"
    inFile = Array(inP & "小学校.dat", inP & "中学校.dat")
    outFile = inP & "Test.dat"
    If MultiFileCopy(inFile, outFile) = False Then
        MsgBox "copy error" '失敗
    Else
        MsgBox "copy end"   '正常
    End If
    
'Moduleで
Public Function MultiFileCopy( _
        inputFile() As Variant, _
        outputFile As String) As Boolean
    Dim n&, ret
    Dim cmdText$         'コマンド
    
    MultiFileCopy = True          '正常コピー
    If inputFile(0) = "" Then
        MultiFileCopy = False     '入力がない
        Exit Function
    End If
    'コマンドを準備
    cmdText = "Command.com /c copy" & " "
    For n = 0 To UBound(inputFile)
        cmdText = cmdText & inputFile(n) & " + "
    Next n
    n = InStrRev(cmdText, "+")
    cmdText = Left(cmdText, n - 1) & outputFile
    
    ret = Shell(cmdText, 1)     'コピー実行
    If ret = 0 Then MultiFileCopy = False '失敗
    
End Function

実行するとWindow画面が表示され、コマンドがディスプレイされることなく、
終了のプロンプトがでます。Exitを入力すると、VBに戻り、Copy endがmsgBox
されます。retの戻り値は0ではないということです。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -