2014-03-13 49 views
0

我正在嘗試創建一個批處理文件以從TXT文件重新啓動多臺計算機。只要/ c「comment here」參數沒有空格,一切正常。如果我將「測試」作爲註釋通過,我會在彈出窗口中看到「測試」,以便重啓。如果我通過「測試空間」作爲評論,我仍然只在彈出窗口中獲得「測試」。在@echo關閉的情況下,我已經驗證了該評論在傳遞給VBS時保留了空格,所以我認爲問題在於我正在通過「invisible.vbs」腳本運行,以防止另一個CMD窗口打開並掛起原始BAT腳本。批處理文件在參數中使用「帶引號的空格」調用VBS

我希望能有類似於最後的命令運行:

關機/ R/M \\ 127.0.0.1 /噸,120/C「您的計算機將在兩分鐘內停車檢修任務「

任何幫助,這將不勝感激!

restart.bat的重要組成部分:

for /f "tokens=1-3" %%c in (%FilePath%) do WScript /nologo "%windir%\myscripts\invisible.vbs" "shutdown /r /m \\%%c /t %delay% /c %message%" 

我也嘗試添加%左右的消息%的額外的報價,但沒有成功:

for /f "tokens=1-3" %%c in (%FilePath%) do WScript /nologo "%windir%\myscripts\invisible.vbs" "shutdown /r /m \\%%c /t %delay% /c "%message%"" 

的invisible.vbs腳本(上StackExchange發現):

CreateObject("Wscript.Shell").Run "" & WScript.Arguments(0) & "", 0, False 

任何幫助將不勝感激!

編輯:使用你的第三個方法的建議,我得到一個腳本錯誤:

Script: C:\Windows\myscripts\invisible.vbs 
Line:  1 
Char:  46 
Error:  The system cannot find the file specified 
Code:  80070002 
Source: (null) 

編輯2:我只是嘗試的第一個方法,也和我現在得到一個VBScript回聲彈出與正確的我希望發送的命令,但不發送命令。我離程序員很遠,我使用的唯一VBS是我在網上找到的東西。我非常感謝您迄今爲止提供的幫助,但我仍然無法實現這一目標。

回答

3

你不能這樣做。 WScript中的Arguments對象背後的邏輯似乎刪除了引號。

所以,我認爲,在至少三個備選

1)最簡單的:使用其他字符作爲報價的指標,並在VBS腳本與報價更換

cmd code : cscript myscript.vbs "shutdown /r /m \\%%c /t %delay% /c '%message%'" 
vbs code : WScript.CreateObject("WScript.Shell").Run replace(WScript.Arguments(0),"'",""""), 0, False 

的唯一的問題是,在某些時候,可能需要使用佔位符作爲真實的字符。

2)最複雜的是:使用wmi檢索當前進程ID並從此處檢索腳本的原始命令行。很多代碼,如果感興趣的話,在StackOverflow中有一些很好的示例。

3)簡單,快速,不尋常。使用環境變量。將該命令保存到變量中,並將該變量的名稱傳遞給腳本。從它,檢索變量內容並使用它

cmd code : set "runVar=shutdown /r /m \\%%c /t %delay% /c "%message%"" 
      wscript //nologo "%windir%\myscripts\runInvisible.vbs" runVar 

vbs code : With WScript.CreateObject("WScript.Shell") : .Run .ExpandEnvironmentStrings("%" & WScript.Arguments(0) & "%"), 0, False : End With 
+0

我選擇嘗試你的第三種方法,但我得到一個腳本錯誤。編輯我的原始帖子。 – MakoHunter

+0

試過第一個選項,但沒有成功。 – MakoHunter

+0

@MakoHunter,沒有看到你的代碼,我不能說你爲什麼會在第三種情況下得到一個錯誤,對我來說它是有效的。對於第一個示例,「WScript.Echo」顯示彈出窗口。它的目的是作爲一個樣本。我已將代碼改編爲您的案例。 –

相關問題