首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用参数从bat调用bat

使用参数从bat调用bat
EN

Stack Overflow用户
提问于 2013-04-09 19:30:37
回答 2查看 261关注 0票数 1
代码语言:javascript
复制
     main.bat contains:
     cscript treat.vbs /a:"the name of file"  

REm:文件名包含许多空格

代码语言:javascript
复制
     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显示的是正在压缩的文件名。

我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 19:48:20

你的问题似乎是“用参数从vbs调用bat”

你调暗了param,但使用了param_input

代码语言:javascript
复制
dim param: param_input=Wscript.Arguments.Named("a")

您的cmd到.run的连接有问题:

代码语言:javascript
复制
>> s = "second.bat" param_input & " " & ""myfile.out""
>>
Error Number:       1025
Error Description:  Expected end of statement

正确的方法之一是使用并将‘替换为’,以避免VBScript在串联中的"“转义:

代码语言:javascript
复制
>> 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

票数 2
EN

Stack Overflow用户

发布于 2013-04-09 19:52:18

您需要用双引号将参数括起来,使空格成为参数的一部分。您需要通过在VBS中将它们加倍来转义这些双引号。

代码语言:javascript
复制
shell.run "second.bat """ & param_input & """ ""myfile.out"""

我不能包含整个例子,因为你的代码甚至不能编译。

另请参阅问题Adding quotes to a string in VBScript

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15900691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档