main.bat contains:
cscript treat.vbs /a:"the name of file" REm:文件名包含许多空格
treat.vbs contains:
dim param: param_input=Wscript.Arguments.Named("a")
msgbox param_input
shell.run "second.bat" param_input & " " & ""myfile.out""
second.bat contains:(just for purpose of test)
echo %1
echo %2运行main.bat时,msgbox会弹出一个包含所有文件名(包括文件名中包含的所有空格)的弹出窗口,而回显消息echo %1显示的是正在压缩的文件名。
我该如何解决这个问题呢?
发布于 2013-04-09 19:48:20
你的问题似乎是“用参数从vbs调用bat”
你调暗了param,但使用了param_input
dim param: param_input=Wscript.Arguments.Named("a")您的cmd到.run的连接有问题:
>> s = "second.bat" param_input & " " & ""myfile.out""
>>
Error Number: 1025
Error Description: Expected end of statement正确的方法之一是使用并将‘替换为’,以避免VBScript在串联中的"“转义:
>> param_input = "the name of file"
>> s = Replace("'second.bat' '" & param_input & "' 'myfile.out'", "'", """")
>> WScript.Echo s
>>
"second.bat" "the name of file" "myfile.out"有关讨论/其他方式,请参阅How-To-Quote-Like-A-Pro。
发布于 2013-04-09 19:52:18
您需要用双引号将参数括起来,使空格成为参数的一部分。您需要通过在VBS中将它们加倍来转义这些双引号。
shell.run "second.bat """ & param_input & """ ""myfile.out"""我不能包含整个例子,因为你的代码甚至不能编译。
https://stackoverflow.com/questions/15900691
复制相似问题