使用批处理脚本复制文件会引发语法错误

时间:2015-09-25 22:10:51

标签: windows datetime batch-file scripting

我有以下批处理脚本,当我运行它时,它会抛出一个错误:

@echo Off
cls
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I

set datetime=%datetime:~0,8%-%datetime:~8,6%

set AGFILE=C:\vendor\My Work\file.txt"
if exist %AGFILE% 
(
echo "file exists"
copy %AGFILE% %AGFILE%.%datetime%
)

当我运行脚本时,出现语法错误。如何修复复制部分的语法错误?

1 个答案:

答案 0 :(得分:0)

你写了

if exist %AGFILE% 
(
echo "file exists"
copy %AGFILE% %AGFILE%.%datetime%
)

但这是语法错误。 IF为true时所采取的操作必须与IF令牌位于同一行。这很容易解决:

if exist %AGFILE% (
  echo "file exists"
  copy %AGFILE% %AGFILE%.%datetime%
)

哪个有效,因为(开始一个复合语句,只是在IF的同一行开始就足够了。同样,如果您需要在此类代码中使用ELSE,则通常需要在一行中编写) ELSE (