我有一个批处理文件,可以帮助我从共享文件夹安装多个软件。
它可以很好地与名称不包含空格的软件配合使用,但我需要它与包含空格的软件配合使用。
此代码运行正常,因为软件名称(firefox.exe)中没有空格:
for /f %%a in ('dir /s /b \\sharedfolder\*firefox*.exe') do %%a
如果我尝试使用名称中有空格的软件运行相同的代码,它不起作用,
例如for /f %%a in ('dir /s /b \\sharedfolder\mozzila *firefox* 36.0.4.exe') do %%a
请看一下软件名称,你就会明白我的意思。
答案1
尝试这样的操作:
for /f %a in ('/s /b \\sharedfolder\*firefox*.exe') do "%a"
您似乎将您的%'s 加倍了,并且需要引用变量才能使其工作。
答案2
rem ↓↓↓↓↓↓↓↓↓
for /f "delims=" %%a in ('dir /s /b "\\sharedfolder\mozzila *firefox* 36.0.4.exe"') do (
rem ↓ ↓ note double quotes ↑ ↑
ECHO "%%a"
)
解释:
"delims="
选项抑制dir /B
输出的标记化;- 双引号:如果单个参数包含空格,你仍然可以将其作为一个项目传递用“引号”括起来 - 这对于长文件名很有效;
ECHO "%%a"
ECHO
:操作命令仅仅为了调试目的而显示;请尽快删除“调试”一词!