2016-10-10 62 views
2

我正在寻找一种方法在执行附加的if/else语句之前测试文件“resume.txt”。有没有办法检查并查看文件是否存在以及文件大小是否大于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

你可以用'for %% a在(resume.txt)do set size = %%〜za'中获得文件大小,并将它与简单的'if'进行比较。 – Stephan

回答

0

批处理脚本的第一行。

@Where/T C:\Job:Resume.txt 2>Nul|Find /V " 0 ">Nul||Exit/B 1 

如果文件不存在或大小为零,这将退出整个脚本。然后你只需要把你的普通脚本放在该行的下面。

1

基于Stephan's comment

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

相关问题