2017-04-28 2 views
1

Ich bekomme einen Fehler, wenn ich diesen Befehl ausführen und ich bin mir nicht sicher warum.Dateiname Zeichenfolge Leerzeichen Problem in VBScript

Lauf VBScript eine Fledermaus-Datei auszuführen, möchte ich in eine Protokolldatei Fehlermeldungen ausgibt. Also, dies zu tun habe ich den Code:

Set WshShell = CreateObject("WScript.Shell") 

WshShell.Run "cmd /k ""C:\ProgramTHISSTRING Files (x86)\Folder\File.bat"" > ""C:\Program Files(x86)\Folder\File.txt""", 1, True 

(habe ich den Code dieses eleganter zu tun, sondern zum Zwecke des Problems, ich denke, das liest sich besser und schneller)

Auch ich habe Setzen Sie THISSTRING absichtlich für den Fehler unten ein.

Sobald dies führt ich diesen Fehler in CMD

‚C: \ ProgramTHISSTRING‘ wird nicht als interner oder externer Befehl erkannt, bedienbare Programm oder Batch-Datei.

Ich verstehe, es ist ein Raum, in dem Dateinamen, der den Fehler verursacht hat, aber ich habe die richtigen Zitate nach this stackoverflow question also warum geschieht dieser Fehler?

+0

Sie Did [ sehe das nicht (http://stackoverflow.com/a/43652798/692942) von yes Erday, zeigt immer noch auf der ersten Seite? – Lankymart

+0

Denken Sie den ganzen Befehl 'cmd/k' in Anführungszeichen übergeben wickeln müssen, damit es' WshShell.Run "cmd/k """ sein "C: \ ProgramTHISSTRING Files (x86) \ Folder \ FILE.BAT ""> "C: \ Programme (x86) \ Folder \ File.txt" "" "", 1, True ", das als" "cmd/k" "C: \ ProgramTHISSTRING Files (X 86) \ Folder ausgeführt wird \ File.bat ">" C: \ Programme (x86) \ Ordner \ Datei.txt "" '. – Lankymart

Antwort

1

denke ich, das Problem hier ist, weil die cmd /k muss die an sie übergebenen Befehle in doppelten Anführungszeichen gekapselt werden.

So ist der Befehl (entfernt THISSTRING wie Sie gesagt haben, das war nur den Fehler auslösen)

WshShell.Run "cmd /k ""C:\Program Files (x86)\Folder\File.bat"" > ""C:\Program Files(x86)\Folder\File.txt""", 1, True 

Wird

WshShell.Run "cmd /k """"C:\Program Files (x86)\Folder\File.bat"" > ""C:\Program Files(x86)\Folder\File.txt""""", 1, True 

und führen die als

cmd /k ""C:\Program Files (x86)\Folder\File.bat" > "C:\Program Files(x86)\Folder\File.txt"" 
Verwandte Themen