.BAT如果然后声明
问题描述:
我需要写一个批处理脚本.BAT如果然后声明
if file newfile.txt exists
then del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
答
您可以使用简单的弧形托架帮助
@echo off
IF EXIST newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
)
随着其他(也支持其他!):
@echo off
IF EXIST newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
) else (
echo Making tea
)
答
你可以这样做的一种方法是让if语句和实验ELS的错误和成功,并用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
答
你可以做几种方式,最干净的方法是:
在单行:
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。)
我想不出使用GOTO语句的原因,除非您使用的是Windows的古老版本。在这种情况下,如果在第一个语句中更改了第一个IF(如果存在newfile.txt),则只会使用GOTO语句。 GOTO声明倾向于使得稍后阅读脚本更加困难。
删除了称呼:“在此先感谢,\ n乔”,下次不要这样做 – 2015-05-21 18:17:09