比较 If 语句中的批处理文件循环变量
Compare a batch file loop variable in an If statement
我有以下批处理文件(保存在文件中):
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
)
我运行这个,它会打印出这个结果:
"MyFile1.png" 16330
"MyFile2.png" 26042
"MyFile3.png" 43346
"MyFile4.png" 47862
"MyFile5.png" 318131
我想更改它以过滤掉所有大文件(数字是以字节为单位的大小)。所以作为测试,我尝试了这个:
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
if %%~zF gtr 100000
Echo Is BIG
)
认为它会在列表中的最后一项之后打印 "Is Big"。
但我却得到了:
The syntax of the command is incorrect.
是否可以将 If
语句与循环变量进行比较?
或者是否有其他方法可以获取超过特定大小的所有文件?
最后,我正在寻找这样的东西:
@echo off
for /r %%F in (*.png) do (
if %%~zF gtr 100000
Resize %%F by .5
)
(注意:Resize 行是伪造的,我还没有创建那部分。)
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
if %%~zF gtr 100000 (
Echo Is BIG
)
)
或
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
if %%~zF gtr 100000 Echo Is BIG
)
批处理中的下一行是其他命令,因此没有括号或没有命令 IF 是不完整的。
我有以下批处理文件(保存在文件中):
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
)
我运行这个,它会打印出这个结果:
"MyFile1.png" 16330
"MyFile2.png" 26042
"MyFile3.png" 43346
"MyFile4.png" 47862
"MyFile5.png" 318131
我想更改它以过滤掉所有大文件(数字是以字节为单位的大小)。所以作为测试,我尝试了这个:
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
if %%~zF gtr 100000
Echo Is BIG
)
认为它会在列表中的最后一项之后打印 "Is Big"。
但我却得到了:
The syntax of the command is incorrect.
是否可以将 If
语句与循环变量进行比较?
或者是否有其他方法可以获取超过特定大小的所有文件?
最后,我正在寻找这样的东西:
@echo off
for /r %%F in (*.png) do (
if %%~zF gtr 100000
Resize %%F by .5
)
(注意:Resize 行是伪造的,我还没有创建那部分。)
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
if %%~zF gtr 100000 (
Echo Is BIG
)
)
或
@echo off
for /r %%F in (*.png) do (
echo "%%~nF%%~xF" %%~zF
if %%~zF gtr 100000 Echo Is BIG
)
批处理中的下一行是其他命令,因此没有括号或没有命令 IF 是不完整的。