我正在尝试从另一个程序传递到批处理文件的路径。另一个程序使用BASIC作为脚本语言。
因此,我通过Shell()命令调用批处理文件。
在shell命令中,我试图传递带有符号“&”的路径。但是,在到达批处理文件时,批处理文件将&视为转义序列(我认为)。
例如:
路径:C:\Documents\R&D\Files
Shell("runscript.bat "C:\Documents\R&D\Files"")
在批处理文件中:
variable=~1
echo %variable%
我得到以下输出:
更新
但是,如果我使用类似C:\Documents\RD\Files的路径
此路径将通过find出现,并且回显将打印:
C:\Documents\RD\Files
最佳答案
我想您想使用不带引号的变量(将其括在引号中不会造成任何问题),然后需要延迟扩展(并使用!
而不是%
访问变量):
set "variable=%~1"
echo "%variable%"
setlocal enableDelayedExpansion
echo !variable!
在这里,我假设第一个参数是包含
&
的东西另一个选项是
for /f
:for /f %%a in ("%~1") do echo %%a
关于windows - 将带有 '&'的路径传递到批处理文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28112066/