以下是我的代码的简化摘录:
@echo off
setlocal enabledelayedexpansion
for /f %%f in ('%pomFiles%') do (
findstr "var" %%f > nul
if errorlevel 0 if not errorlevel 1 (
cd "%%~dpf"
for /f "usebackq" %%i in ('%%~dpftree.out') do ( set size=%%~zi && echo !size!)
if !size! gtr 0 (
//do stuff
)
)
)
似乎没有设置!size!
变量。如果我执行echo !size!
,则会打印!size!
。如何确保!size!
评估?
答案 0 :(得分:1)
这是因为您正在使用for /f
,这是为了读取文件的内容,因此问题是您正在尝试获取变量%%i
的大小,该变量被设置为第一个文件中的行。
您只需要定期for
循环
for %%i in ("%%~dpftree.out") do ( set size=%%~zi && echo !size!)
if !size! gtr 0 (
//do stuff
)