2016-07-14 11 views
0

Ich möchte eine Batch-Datei mit einigen zusätzlichen Zeichen am Ende ausführen. Wenn ich schreibe, es direkt an cmd es funktioniert, wie wechseln Sie in "c:\Users\Public\Uploader\" und schreiben Sie folgendes: start.bat "cmd:file.import c:\Users\tom\Desktop\a.xml"Run Batch-Datei mit Parametern

Ich weiß nicht, wie es in VBScript zu schreiben, denn das folgende Skript nicht funktioniert:

Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.CurrentDirectory="C:\Users\Public\Uploader\" 
WshShell.Run "start.bat" & "cmd:file.import C:\Users\tom\Desktop\a.xml" 

Die a.xml sollte basierend auf der zuletzt geänderten Datei im Ordner dynamisch geändert werden. Vielen Dank für Ihre Hilfe!

+1

[Was haben Sie bisher versucht, das funktioniert nicht] (http://whathaveyoutried.com)? Außerdem gibt es zwischen Ihrer start.bat und ihren Parametern keinen Platz. – ManoDestra

+1

Sie haben es richtig - und einen guten Platz bei @ManoDestra. Ich finde es einfacher, Fehler zu beheben und korrekte Befehle zu erstellen, indem Sie Strings verwenden, um den Befehl zu erstellen und ihn vor der Ausführung zu echozieren. Wenn Sie es vor Ihren Augen sehen, können Sie die fehlenden Leerzeichen oder Zitate leicht erkennen – dbmitch

Antwort

0

Wenn Sie versuchen, das, was Sie tun, an der Eingabeaufforderung zu duplizieren, müssen Sie ein Leerzeichen zwischen dem Stapeldateinamen und seinen Argumenten hinzufügen. Sie müssen auch die Anführungszeichen hinzufügen.

Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.CurrentDirectory="C:\Users\Public\Uploader\" 
WshShell.Run "start.bat " & chr(34) & "cmd:file.import C:\Users\tom\Desktop\a.xml" & chr(34)