Batch file 是否可以在发出命令之前检查文件大小?
我正在寻找一种在执行附加的if/else语句之前测试文件“resume.txt”的方法。是否有办法检查文件是否存在以及其大小是否大于0KB。。。如果文件=<0KB,我想退出程序。这可能吗Batch file 是否可以在发出命令之前检查文件大小?,batch-file,Batch File,我正在寻找一种在执行附加的if/else语句之前测试文件“resume.txt”的方法。是否有办法检查文件是否存在以及其大小是否大于0KB。。。如果文件=num | Find/V“0”>num | |退出/B 1 如果文件不存在或大小为零,则将退出整个脚本。然后您只需要将普通脚本放在该行下方。您可以使用获取%%a in(resume.txt)的文件大小do set size=%%~za并将其与简单的进行比较。 for %%a in ("C:\Job\Resume.txt") do set /A
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,则退出程序。否则,继续运行程序。我希望这不是太令人困惑 基于:
有关说明,请阅读call/?
和。下一个引用语句应用于%a
参数:
%~za
将%a
扩展到文件大小
如果
“C:\Job\Resume.txt”
文件不存在,则%~za
将扩展为空字符串因此,
set/A size=%%~za+0
返回批处理脚本的第一行
@Where/T C:\Job:Resume.txt 2>num | Find/V“0”>num | |退出/B 1
如果文件不存在或大小为零,则将退出整个脚本。然后您只需要将普通脚本放在该行下方。您可以使用
获取%%a in(resume.txt)的文件大小do set size=%%~za
并将其与简单的进行比较。
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
)