我有一个批处理脚本,似乎没有将特定信息放在varible中。以下是我遇到的问题:
FOR /f "tokens=*" %%f IN ('DIR /B %~dp0%%y\%%m\*.*') DO (
WUSA %~dp0%%y\%%m\%%f /quiet /norestart /log:%~dp0%LOGFILE%
我们在特定%~dp0%%y\%%m
目录中有一个文件,其中列出了.exe
和.msi
个文件。我们希望文件的名称放在%%f
中,以便我们可以运行它,但是每次运行批处理文件时它都会声明它" cannot find the path specified
"。
我确认%~dp0%%y\%%m
是正确的目录,并且DIR /B %~dp0%%y\%%m\*.*
似乎正确列出了文件名,但出于某种原因,它不会输入%%f
.... < / p>
我已经尝试在Echo %%f
之后添加DO
以查看是否有任何内容放在里面,但它没有列出任何内容。
有关于如何解决这个或出了什么问题的想法吗?基本上我们希望它在循环中运行并逐个安装文件中的每个.exe
。
答案 0 :(得分:1)
您可以尝试使用
for %%f in ("%~dp0%%y\%%m\*.*") do (
echo Installing "%%~ff"
WUSA "%%~ff" /quiet /norestart /log:"%~dp0%LOGFILE%"
)
只需迭代指定的文件集(不需要for /f
),而不是编写文件的完整路径,使用完整路径(%%~ff
)