【发布时间】:2014-04-17 12:53:34
【问题描述】:
我正在尝试创建一个批处理文件以从一个 TXT 文件重新启动多台计算机。只要 /c "comment here" 参数没有空格,一切正常。如果我通过“测试”作为评论,我会在弹出窗口中看到“测试”以重新启动,正如预期的那样。如果我通过“测试空间”作为评论,我仍然只会在弹出窗口中得到“测试”。关闭@echo,我已经验证了注释在传递给VBS时保留了空格,所以我认为问题在于我正在运行“invisible.vbs”脚本以防止另一个CMD窗口打开并挂起原始BAT脚本。
我希望能够运行类似于以下内容的最终命令:
shutdown /r /m \\127.0.0.1 /t 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%"
我也尝试在 %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 是我在网上找到的东西。我非常感谢您迄今为止提供的帮助,但我仍然无法使其正常工作。
【问题讨论】:
标签: file batch-file parameters spaces