2015-10-26 24 views
2

我有一個.vbs腳本[2]開頭的.bat文件[1],僅在不啓動終端的情況下啓動,在.bat文件中包含'開始/低'。如何設置從Windows批處理文件啓動可執行文件時的進程優先級,而無需啓動終端

.bat文件的'Start/low'部分以正確(低)優先級設置啓動命令,但它在終端啓動,我不想要。

如果我沒有在.bat文件中設置優先級,我只能在沒有終端的情況下在後臺啓動所需的命令。在這種情況下,啓動的最終.exe會減慢我的計算機速度,這就是爲什麼我要將其優先級設置爲「低」的原因。

我試過這個[3],但是當我運行它[4]時它給了我一個錯誤。

有人會告訴我如何使可執行文件低優先級啓動,而無需啓動終端窗口?

[1]

Start /low C:/dataserv-client/dataserv-client.exe --store_path=C:\Users\Chris\StorjData --max_size=800.0GB farm 

[2]

Dim WinScriptHost 
Set WinScriptHost = CreateObject("WScript.Shell") 
WinScriptHost.Run Chr(34) & "C:\Users\Chris\Scripts\start_dataserv-client.bat" & Chr(34), 0 
Set WinScriptHost = Nothing 

[3]

Dim WinScriptHost 
Set WinScriptHost = CreateObject("WScript.Shell") 
WinScriptHost.Run Chr(34) & "Start /low C:/dataserv-client/dataserv-client.exe --store_path=C:\Users\Chris\StorjData --max_size=800.0GB farm" & Chr(34), 0 
Set WinScriptHost = Nothing 

4

enter image description here

+0

START是一個內部CMD.exe命令。這就是爲什麼它無法找到它來執行它。 – Squashman

回答

2

[3]中的代碼不起作用,因爲1)添加了chr(34)的結束引用錯誤 - 只有可執行文件應該以這種方式引用,而不是整個命令行,並且2)start不是獨立實用程序它可以由.Run直接執行,它是命令處理器cmd的命令(通過在命令提示符控制檯中運行where start可以輕鬆檢查)。

CreateObject("WScript.Shell").Run "cmd /c Start /low " & chr(34) & chr(34) & " " & _ 
    chr(34) & "C:\dataserv-client\dataserv-client.exe" & chr(34) & _ 
    " --store_path=C:\Users\Chris\StorjData --max_size=800.0GB farm", 0 

,其執行cmd /c start /low "" "C:\dataserv-client\dataserv-client.exe" ......... - 第一""是的start等多項稱號參數cmd不會與報價exe文件路徑混淆。

相關問題