我需要帮助编写
的批处理脚本if file newfile.txt exists
then del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
答案 0 :(得分:10)
您可以使用简单的弯曲括号(也支持其他!)
@echo off
IF EXIST newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
)
使用else:
@echo off
IF EXIST newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
) else (
echo Making tea
)
答案 1 :(得分:8)
if not exist newfile.txt goto skip
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
:skip
答案 2 :(得分:4)
你可以用几种方法做,最干净的方法是:
单行:
if exist newfile.txt del "InDesignData.txt" & ren "newfile.txt" "InDesignData.txt"
在不同的行上:
if exist newfile.txt del "InDesignData.txt"
if exist newfile.txt ren "newfile.txt" "InDesignData.txt"
或使用()
if exist newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
)
使用括号是对使用GOTO的改进,因为它的代码更清晰。 (这通常不是我首先想到的,因为我在MS-DOS下学习了BATCH。)
除非您使用的是古老版本的Windows,否则我无法想到使用GOTO语句的原因。在这种情况下,我只会使用 GOTO 语句,如果您正在测试的内容(在这种情况下,如果存在newfile.txt)在第一个中更改(例如,在这种情况下删除)如果声明。 GOTO 语句往往会使阅读脚本变得更加困难。
答案 3 :(得分:0)
你可以这样做的一种方法是使用if语句和标签来表示错误和成功,并使用ECHO来调试它...我的例子与目录有关,但你肯定可以适应你的文件删除/创作需求:
ECHO Cleaning up folders...
if exist %myDir% goto deleteFolder
goto createNewDir
:deleteFolder
echo Deleting %myDir%
RMDIR %myDir% /S /Q
IF ERRORLEVEL 1 GOTO Error
:createNewDir
mkdir %myDir%
IF ERRORLEVEL 1 GOTO Error
goto Done
:error
echo something went wrong
goto End
:Done
echo Success!
:End
HTH, EB