2017-08-18 33 views
-1

將以//(例如//ABC)開頭的參數傳遞給VBS文件(Wscript)會導致「未知選項」錯誤。處理以「//」開頭的參數

如何捕獲並處理此錯誤?

+0

爲我工作,告訴我們它失敗的原因(來源,你稱它的方式和錯誤) – Marged

+0

@MC ND,感謝您的參考。它像一個魅力。 – Yaron

+0

@已收集,我在我的問題中錯誤地使用了\\。你說得對:那是有效的。 我已經編輯過問題到'//'。再次感謝。 – Yaron

回答

2

Option Explicit 

Dim i 
For i = 0 To WScript.Arguments.Length - 1 
    WScript.Echo i, WScript.Arguments(i) 
Next 

輸出:

cscript 45765234.vbs one two three /a /b /c //D \\ABC 
0 one 
1 two 
2 three 
3 /a 
4 /b 
5 /c 
6 \\ABC 

e:\work\proj\soa\tmp 
cscript 45765234.vbs one two three /a /b /c //D //ABC 
Eingabefehler: Es wurde die unbekannte Option "//ABC" angegeben. 

和:

cscript 
Syntax: CScript Skriptname.Erweiterung [Option...] [Argumente...] 

Optionen: 
//B   Batch-Modus: Zeigt keine Skriptfehler und Aufforderungen an 
//D   Aktives Debuggen aktivieren 
//E:engine  Modul zum Ausführen des Skripts verwenden 
//H:CScript Ändert den Standardskripthost auf CScript.exe um 
//H:WScript Ändert den Standardskripthost auf WScript.exe um (Standard) 
//I   Interaktiver Modus (Standard; Gegenteil von //B) 
//Job:xxxx  Führt einen WSF-Auftrag aus 
//Logo   Zeigt das Logo an (Standard) 
//Nologo  Zeigt kein Logo an: Bei Ausführung wird kein Banner angezeigt 
//S   Speichert die aktuellen Befehlszeilenoptionen für diesen Benutzer 
//T:nn   Timeout in Sekunden: Maximale Zeit, die ein Skript laufen darf 
//X   Führt das Skript im Debugger aus 
//U    Unicode für umgeleitete E/A-Vorgänge von der Konsole aus verwenden 

而且看到:不能使用//或抓住他們的劇本,因爲他們由主機處理(cscript.exe,wscript.exe)。然而,使用\不會導致問題。

+0

@已變形,只要用'ABC'調用任何VBScript,就會得到'未知選項'錯誤。 *** @ Ekkehard.Horner,我的腳本以Notepad ++中的當前行作爲參數。這個「當前行」可能以'//'開頭。謝謝。 – Yaron