2016-04-11 16 views
2

私はビジュアルベーシックでプログラムを作成しています。これは、いくつかのことを行うバッチファイルを開始します。私が必要とするのは、ビジュアルベーシックからバッチファイルに引数を渡すことです。ここでVisual Basicの文字列をバッチファイルで使用する

は、私は、Visual Basicで、これまで持っているものです。

If M.Msg = WM_DEVICECHANGE Then 
      Select Case M.WParam 
       Case DBT_DEVICEARRIVAL 
        Dim DevType As Integer = Runtime.InteropServices.Marshal.ReadInt32(M.LParam, 4) 
        If DevType = DBT_DEVTYP_VOLUME Then 
         Dim Vol As New DEV_BROADCAST_VOLUME 
         Vol = Runtime.InteropServices.Marshal.PtrToStructure(M.LParam, GetType(DEV_BROADCAST_VOLUME)) 
         If Vol.Dbcv_Flags = 0 Then 
          For i As Integer = 0 To 20 
           If Math.Pow(2, i) = Vol.Dbcv_Unitmask Then 
            Dim Usb As String = Chr(65 + i) + ":\" 
            MsgBox("New device found!" & vbNewLine & vbNewLine & "The drive letter is: " & Usb.ToString & vbNewLine & "Start backup?") 
            Dim DosRun As Process = New Process 
            Dim strArgs As String 
            strArgs = Usb.ToString 
            DosRun.StartInfo.WindowStyle = ProcessWindowStyle.Maximized 
            DosRun.StartInfo.FileName = "C:\Users\info\Desktop\Backup.bat" 
            DosRun.StartInfo.Arguments = Usb 
            DosRun.Start() 
            Exit For 
           End If 
          Next 
         End If 
        End If 

これは私のバッチファイルがどのように見えるかの一部です:私はバッチに、引数のUsbを渡す必要があり

xcopy %Usb% %ziel% /E /V /W /I /F /H /D /Y /EXCLUDE:C:\Users\info\Desktop\Exclude.txt 

ファイル。誰でも助けてくれますか?

答えて

3

バッチファイルでは、引数は%と引数の数を入力してキャッチします。 %1が最初の引数、%2が2番目の引数となります。

%Usb%から%1に変更して、最初の引数をキャッチします。

xcopy %1 %ziel% /E /V /W /I /F /H /D /Y /EXCLUDE:C:\Users\info\Desktop\Exclude.txt 
+0

ありがとうございました! – max07

+0

@ max07:ようこそ。 :) –

1

バッチファイルで%Usb%%1に置き換えてください。

関連する問題