2016-04-11 2 views
2

Ich arbeite an einem Programm in Visual Basic, die eine Batch-Datei starten wird, die ein paar Dinge tut. Was ich brauche, ist ein Argument von Visual Basic an meine Batch-Datei übergeben. HierZeichenkette von Visual Basic in Batch-Datei verwenden

ist, was ich bisher in Visual Basic haben:

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 

Dies ist Teil dessen, was meine Batch-Datei wie folgt aussieht:

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

Ich brauche das Argument USB an den Stapel passieren Datei. Kann mir jemand helfen?

Antwort

3

In Batch-Dateien werden Argumente durch Eingabe von % und der Nummer des Arguments abgefangen. %1 wäre das erste Argument, %2 der zweite, und so weiter.

Ändern Sie einfach %Usb% zu %1, um das erste Argument abzufangen.

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

Danke, das hat funktioniert! – max07

+0

@ max07: Gern geschehen. :) –

1

Ersetzen Sie in Ihrer Stapeldatei %Usb% durch %1 und Sie sind gut zu gehen.