如何解决xcopy 在命令提示符下工作,但在使用变量的批处理文件中失败
我正在尝试针对远程计算机列表运行批处理文件。
批处理文件将检查特定文件,如果在目录中找不到该文件,则应将其复制到那里。
我使用 %%a 变量作为 PC 名称。
如果我使用 xcopy 命令并将变量替换为计算机名称并从命令提示符运行,它将复制文件。
我不知道为什么 xcopy 命令在使用 %%a 时在批处理文件中失败
PC.txt 是我的带有计算机列表的文本文件。
我在文本文件中使用主机名而不是 FQDN
for /f %%a in (PCList.txt) do (
If Exist "\\%%a\c$\Program Files\Folder\App.exe" (
ECHO %%a App.exe exists
) ELSE (
ECHO %%a App.exe Does Not Exist
xcopy "C:\Folder\App.exe" "\\%%a\c$\Program Files\SubFolder\" /Q /R /Y
解决方法
首先,您似乎有一两个语法错误。您在 ... Folder\App.exe" (
中打开了一个括号,但此后一直没有关闭它,这与 ) ELSE (
相同。此外,有时 FOR 内的括号会干扰代码的其余部分。如果添加缺少的括号没有解决,请尝试将代码修复为:Folder\App.exe" ^(
这可以提供帮助。
试试这个:
for /f %%a in (PCList.txt) do (
If Exist "\\%%a\c$\Program Files\Folder\App.exe" ECHO %%a App.exe exists
) ELSE (
ECHO %%a App.exe Does Not Exist
xcopy "C:\Folder\App.exe" "\\%%a\c$\Program Files\SubFolder\" /Q /R /Y )
另外,您只能使用 COPY,也许问题出在 COPY 上。并且对整个 .exe 使用参数 if exist
并不是最好的主意,用户只需创建一个 txt 文件并将其重命名为 App.exe。
希望这会有所帮助,
K.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。