批处理:在循环中使用逗号? [关闭]

问题描述 投票:0回答:1

我尝试在批处理中运行带逗号的命令,并将输出存储在变量中:

FOR /F %%F IN ('cscript.exe %SetConfigPWD% "Intel(R) Virtualization Technology" Enabled "password,ascii,us"') DO (SET var=%%F)

当我执行此命令时,逗号被空格替换,并且命令失败:

FOR /F %F IN ('cscript.exe C:\temp\old\SetConfigPassword.vbs "Intel(R) Virtualization Technology" Enabled "password ascii us"') DO (SET var=%F )

有什么方法可以在命令中使用逗号并将输出转换为变量?

windows batch-file cmd comma
1个回答
0
投票

我不确定您在代码中到底要实现什么,因为我只能在问题中看到一部分代码,但是,我会尽力解决您的问题。

下面是一个调用脚本icanCall.bat。将3个值传递给vbs脚本的批处理脚本icanReturn.vbs

icanCall.bat

set "cmd=cscript.exe 2.vbs "Intel(R) Virtualization Technology" Enabled "password,ascii,us""
FOR /F "tokens=*" %%F IN ('%cmd%') DO (SET var=%%F)

在vbs文件中,我只是返回icanCall.bat脚本传递的所有值

icanReturn.vbs

var1 = WScript.Arguments.Item(0)
var2 = WScript.Arguments.Item(1)
var3 = WScript.Arguments.Item(2)
wscript.stdout.writeline("From VBS: var1:" & var1 & " var 2:" & var2 & " var3:" & var3)

上面的脚本会将值写入标准输出,这将由批处理脚本捕获。

如果在批处理脚本icanCall.bat(echo%var%)中回显变量var,则可以看到类似的内容。

From VBS: var1:Intel(R) Virtualization Technology var 2:Enabled var3:password,ascii,us
© www.soinside.com 2019 - 2024. All rights reserved.