windows - 批处理脚本 - 如果存在复制到 %localappdata% 错误

标签 windows batch-file

我似乎被批处理脚本困住了,需要一些帮助。

基本上我需要检查文件是否存在于 %localappdata% 的文件夹中,如果存在则覆盖该文件,如果不存在则放置在不同的位置,所以目前它看起来像这个:

IF EXIST "%localappdata%\foldername\filename" COPY /Y "filename" "location" ELSE COPY "filename" "location2" 

但是,当它运行时,我收到了一个错误信息:The syntax of the command is incorrect. 这似乎是由于使用了 %localappdata% 变量。

预先感谢您对此提供的任何帮助。

最佳答案

您需要将 IF 分支的两个命令放在括号中:

IF EXIST "%localappdata%\foldername\filename" (COPY /Y "filename" "location") ELSE (COPY "filename" "location2")

这样做的原因是 shell 需要能够判断文件是否存在,您要运行的命令就是这样:

COPY /Y "filename" "location"

而且不是所有这些:

COPY /Y "filename" "location" ELSE COPY "filename" "location2"

如果您考虑一下,所有那些 ELSE COPY 东西很可能是第一个 COPY 的合法参数——除非您提供帮助,否则 shell 无法知道.

关于windows - 批处理脚本 - 如果存在复制到 %localappdata% 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6570313/

相关文章:

batch-file - 检查Windows 10中的批处理文件中是否存在包含空格的文件

windows - 如果存档中没有子文件夹,如何在RAR/ZIP提取中创建子文件夹?

c++ - 使用 SetNamedSecurityInfo 设置 GRANT_ACCESS

java - 如何从 Java 打开 Windows 命名管道?

windows - Windows Installer在Win 10上失败,但在使用WIX的Win 7上失败

.net - 从 .net 代码从 Windows 移植到 Linux

batch-file - 批量突破 FOR

windows - 一台 Windows 服务器上的 IIS 和 TOMCAT

regex - 从批处理脚本中的字符串中提取数字

batch-file - 如何从cmd批处理文件中的变量获取目录路径