2017-04-14 35 views
1

Visual Studioでアプリケーションを作成しています。ユーザーがボタンをクリックすると、私は次のCMDコマンドを実行したい:VBでパラメータを使用してCMDコマンドを実行する

xcopy /s/y "C:\myfile.txt" "D:\" 

私はProcess.Startでこれを試してみた()が、それは動作しません。ボタンのコードは:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Process.Start("CMD", "/C xcopy /s/y "C:\myfile.txt" "D:\"") 
End Sub 

私はこの作品を作る方法を知っていますか?私は、問題がCMDコマンドの/ s/yパラメータまたは引用符によって引き起こされていると思われます。

答えて

3

コードはコンパイルされません。文字列の二重引用符をエスケープする必要があります。 VB.NETでは二重引用符を使用して引用符をエスケープします:

Process.Start("CMD", "/C xcopy /s/y ""C:\myfile.txt"" ""D:\""") 
+0

これはうまく動作します、ありがとう!ただし、コマンドプロンプトウィンドウは、ボタンをクリックした後も開いたままです。 xcopyを実行した後に自動的に閉じることができるかどうか、exitコマンドのようなものか、さらにはCMD画面をユーザーに表示しないでください。 – elton73

+0

@ elton73: 'xcopy /?' –

+0

@ elton73:[** this **](http://stackoverflow.com/a/12477832/3740093)を参照し、最後の引用の前に '&exit'を追加してください。 –

関連する問題