2015-09-25 55 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語法的修正是更大的問題之一。 –

相關問題