如何在Windows中从批处理文件启动可执行文件时设置进程优先级而不启动终端

时间:2015-10-26 18:49:43

标签: batch-file vbscript

我有一个.bat文件[1]从.vbs脚本[2]开始,如果我在.bat文件中不包含'Start / low',它只会在没有启动终端的情况下启动。

.bat文件的“开始/低”部分启动具有正确(低)优先级设置的命令,但它在终端中启动,我不想要。

如果我没有在.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

1 个答案:

答案 0 :(得分:3)

[3]中的代码无法正常工作,因为1)用chr(34)添加的结束引用位于错误的位置 - 只有可执行文件应该以这种方式引用,而不是整个命令行2)start不是独立的实用程序,它可以由.Run直接执行,它是命令处理器cmd的命令(通过运行{{1轻松检查)在命令提示符控制台中)。

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" .........用于""的title参数,以便start不会将其与引用的exe路径混淆。< / p>