我正在寻找一种方法来测试文件“resume.txt”,然后再执行附加的if / else语句。有没有办法检查并查看文件是否存在以及文件的大小是否为> 0KB? ...如果文件是=<我想要退出程序0KB。这可能吗?
if exist C:\Job\Resume.txt (
echo INPUT FILE C:\Job\Resume.txt
echo OUTPUT FILE %JOB_RESUME_LOC%\%FILE_DATETIME%_info.dat
copy C:\Job\Resume.txt%JOB_RESUME_LOC%\%FILE_DATETIME%_info.dat
echo File Resume.txt copied
) else (
echo File Resume.txt not copied
)
基本上,如果文件“Resume.txt”为0KB,则退出程序。否则,继续运行该程序。我希望这不会太混乱!
答案 0 :(得分:1)
for %%a in ("C:\Job\Resume.txt") do set /A size=%%~za + 0
if %size% GTR 0 (
echo INPUT FILE C:\Job\Resume.txt
echo OUTPUT FILE %JOB_RESUME_LOC%\%FILE_DATETIME%_info.dat
copy "C:\Job\Resume.txt" %JOB_RESUME_LOC%\%FILE_DATETIME%_info.dat
echo File Resume.txt copied
) else (
echo File Resume.txt not copied
)
有关说明,请阅读call /?
和Command Line arguments (Parameters)。下一个引用的语句适用于%a
参数:
%~za
将%a
扩展为文件大小
如果"C:\Job\Resume.txt"
文件不存在,则%~za
会扩展为空字符串。
因此,set /A size=%%~za + 0
会返回0
。
答案 1 :(得分:0)
第一行批处理脚本。
@Where/T C:\Job:Resume.txt 2>Nul|Find /V " 0 ">Nul||Exit/B 1
如果文件不存在或者大小为零,这将退出整个脚本。然后你只需要将正常的脚本放在该行下面。