微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xcopy 在命令提示符下工作,但在使用变量的批处理文件中失败

如何解决xcopy 在命令提示符下工作,但在使用变量的批处理文件中失败

我正在尝试针对远程计算机列表运行批处理文件

批处理文件将检查特定文件,如果在目录中找不到该文件,则应将其复制到那里。

我使用 %%a 变量作为 PC 名称

驱动器规格无效的批处理文件中的 xcopy 命令失败。

如果我使用 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 举报,一经查实,本站将立刻删除。