|
@jh1688
图片1是此批与测试目录同一目录的结果,是由xcopy引起的.
@FLOPPY
if exist %%a if not defined "%%~dpa" set ""%%~dpa"=="&echo. %%~dpa
这句是一条多条件判断的复合语句:两个if(是并列关系或可以理解为逻辑and)如果两个if的结果都为真则为真接着执行
set ""%%~dpa"=="&echo. %%~dpa,(这句好理解:为真设定变量并打印出来);两个if的结果如果其中一个为假则为
假不执行set ""%%~dpa"=="&echo. %%~dpa.直接执行pause.
这个批中因为for 的循环特性并且第一次循环的时候%%a确实已被赋值,if exist %%a肯定为真,接着看环境变量
中是否存在名为%%~dpa(%%a的扩展)的变量名,如果没有则为真执行set ""%%~dpa"=="&echo. %%~dpa.
第二次循序的时候假设%%a确实也已被赋值,if exist %%a也肯定为真.if not defined "%%~dpa"就变为假了,因为前面已经
设定过变量了,所以不再set ""%%~dpa"=="&echo. %%~dpa直接跳到pause这句,所以不管循环多少次只输出一行%%~dpa.
此批文件感觉逻辑上有问题,已设定目标目录还判断/设定变量这些干什么~~ |
|