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

我似乎被困在一个批处理脚本,并希望得到一些帮助。

基本上我需要检查一个文件是否存在于%localappdata%中的一个文件夹中,如果它覆盖了文件,如果不是,放置在不同的位置,所以目前它读取像这样:

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

但是,当这运行我收到错误The syntax of the command is incorrect. 这似乎是由于正在使用的%localappdata%variables。

提前感谢您的帮助。

Solutions Collecting From Web of "批处理脚本 – 如果存在复制到%localappdata%错误"

你需要把两个IF分支的命令放在parens中:

 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是无法知道的。