2015-09-25 56 views
-2

我有以下批处理脚本,当我运行它,它抛出一个错误:使用批处理脚本复制文件抛出一个语法错误

@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% 
) 

当我运行该脚本,我得到一个语法错误。如何修复复制部分的语法错误?

+0

'set AGFILE'中缺少'''开头引号...... – aschipfl

回答

0

你写

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

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

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

哪些工作,因为(开始一个复合语句,和刚刚开始它在同一行IF就足够了。同样,如果您需要在这样的代码中使用ELSE,则通常需要在同一行上写入。

+0

这帮助我推进IF语句,现在我没有得到任何错误,但是文件没有被复制。如果我不使用变量,那么我看到该文件被复制 –

+0

如果我使用xcopy,它可能会工作,但我不断收到提示以指定它是否为文件或目录。此脚本将作为自动备份脚本,我不能有任何提示用户输入:| –

+0

抱歉...我在变量中有不正确的文件夹名称,但是RBerteig对IF语法的修正是更大的问题之一。 –

相关问题