首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Windows批处理脚本中的文件大小

检查Windows批处理脚本中的文件大小
EN

Stack Overflow用户
提问于 2018-05-03 16:05:03
回答 1查看 6.5K关注 0票数 2

我想在Windows批处理脚本中检查文件大小。似乎我的脚本正在退出,而不是进入脚本的下一个步骤。文件条件不应生成错误,应继续下一步。但我一定是遗漏了什么东西,或者在以下几个方面有不正确的地方:

代码语言:javascript
复制
:: Check size of input files 
call "%DIR_BAT%\CreateLAFMessage.bat" "%~n0.bat-> %STEP_NBR% - check for size of LOM_AA_2.dat and LOM_AI.dat" %_LAF_MSG_DETAILS%
set ERROR_MSG="%DIR_IP_INTERFACES%\LOM_AA_2.dat" ZERO Byte File
set file="%DIR_IP_INTERFACES%\LOM_AA_2.dat"
set maxbytesize=0
FOR /F "usebackq" %%A IN (%file%) DO set size=%%~zA
if %size% NEQ %maxbytesize% (
    echo.File is ^<> %maxbytesize% bytes
) ELSE (
    goto ON_ERROR
)
set ERROR_MSG="%DIR_IP_INTERFACES%\LOM_AI.dat" ZERO Byte File
set file="%DIR_IP_INTERFACES%\LOM_AI.dat"
FOR /F "usebackq" %%A IN (%file%) DO set size=%%~zA
if %size% NEQ %maxbytesize% (
    echo.File is ^<> %maxbytesize% bytes
) ELSE (
    goto ON_ERROR
)
EN

回答 1

Stack Overflow用户

发布于 2018-05-05 05:20:54

您已经在for循环中启用了Usebackq选项。此选项使用不同的引用方式:

  • "filenameset“中长文件名的双引号。
  • “文本字符串处理”的单引号
  • command to process的反引号

因此,添加双引号会告诉for循环处理文件。

代码语言:javascript
复制
@echo off
set "file=%DIR_IP_INTERFACES%\LOM_AA_2.dat"
set MAXBYTESIZE=0

for /f "usebackq" %%A in ("%file%") do set /a size=%%~zA

if %size% GTR %MAXBYTESIZE% (
    echo(%file% is too large
) else (
    echo(%file% is ^<^> %size% bytes long
)

pause
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50159459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档