2016-10-10 45 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

相關問題