我正在尝试构建一个Batch脚本来显示文件夹中包含的大于1 MB的文件,只是为了练习。一切都很顺利,除了脚本处理" c"环境变量就好像它不存在一样。我用echo %c%
替换了if语句,结果是echo is off意味着" c"不存在。
我如何克服这一点,如果有另一种方法可以实现这一目标,那也很好。谢谢你顺便一下。
@echo off
set /p a=Enter the extension
cd %~dp0
for /r %%T in (*.%a%) do set /a "c=%%~zT/(1024*1024)" && if %c% geq 1 echo %%~fT is greater than 1 MB
答案 0 :(得分:0)
正如那些家伙所说,delayedexpansion是我解决问题的方法。它会是这样的。 !C!用于访问set语句
设置的c的新值@echo off
setlocal enabledelayedexpansion
set /p a=Enter the extension
cd %~dp0
for /r %%T in (*.%a%) do set /a "c=%%~zT/(1024*1024)" && if !c! geq 1 echo %%~fT is greater than 1 MBs