批处理脚本不将数据放入变量

时间:2015-04-07 19:02:06

标签: windows batch-file

我有一个批处理脚本,似乎没有将特定信息放在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

1 个答案:

答案 0 :(得分:1)

您可以尝试使用

for %%f in ("%~dp0%%y\%%m\*.*") do (
    echo Installing "%%~ff"
    WUSA "%%~ff" /quiet /norestart /log:"%~dp0%LOGFILE%"
)

只需迭代指定的文件集(不需要for /f),而不是编写文件的完整路径,使用完整路径(%%~ff