2016-09-21 10 views
0

バッチファイルを作成してVisualBasic 6.0で実行しようとしています。バッチファイルは、ファイルのコピー、削除、または名前の変更用です。ファイル名は可変で、アプリケーションによって生成されます。バッチファイルを使用してvb 6.0を使用して別の場所にファイルをコピーする方法

私の次のコードは、このようなものです:

Dim STRFiLE As String 

Private Sub callBatch(trans As String) 
Dim StrBatch As String 

StrBatch = App.Path & "\test.bat " & trans 
MsgBox StrBatch 
Shell (StrBatch) 
End Sub 

Private Sub Command1_Click() 
callBatch STRFiLE 
End Sub 

Private Sub Form_Load() 
STRFiLE = App.Path & "\test\LAT.TXT" 
End Sub 

誰も私を助けることができますか?

+0

あなたの質問を言い換えてください。 VBコードは貼り付けられているので、どこに貼り付いているかはわかります。あなたはファイル名をハードコードしていますので、何が間違っていますか? exeのコマンドライン引数として渡したいですか? –

+0

[ツアーページ](http://stackoverflow.com/tour)全体を読んで、このサイトの仕組みを学んでください! – aschipfl

+2

なぜバッチファイルを使用するのですか? – Fred

答えて

0

引数とプログラムパスにApp.Pathを含めているので、おそらくパラメータを二重引用符で囲む必要があります。

時々、パス内のスペースで混乱することがあります。あなたのバッチファイルがあなたのパラメータを読み込もうとする可能性が高くなります - それはfilenameパラメータの最初のスペースで止まります。 (あなたがアップ倍増することによって、それらをエスケープする必要があります注意してください)、二重引用符ですべてを包む

試してみてください。

Dim STRFiLE As String 

Private Sub callBatch(trans As String) 
    Dim StrBatch As String 

    StrBatch = """" & App.Path & "\test.bat"" " & """" & trans & """" 
    MsgBox StrBatch 
    Shell (StrBatch) 
End Sub 

Private Sub Command1_Click() 
    callBatch STRFiLE 
End Sub 

Private Sub Form_Load() 
    STRFiLE = App.Path & "\test\LAT.TXT" 
End Sub 
+0

追加の引用符を追加するのは正しい方法です - +1 to dbmitch –

+0

コメントを評価してください@AndreOosthuizen - あなたがコーディングしている3つの言語のどれを知っているのですか?なぜ私の答えが役に立たないと思ったのかは分かりませんが、それは以前に起こったことです。時には何かを提案することを躊躇させます – dbmitch

関連する問題