【问题标题】:Compare a batch file loop variable in an If statement比较 If 语句中的批处理文件循环变量
【发布时间】:2015-01-29 19:28:21
【问题描述】:

我有以下批处理文件(保存在文件中):

@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”。

但是我得到了:

命令的语法不正确。

是否可以将If 语句与循环变量进行比较?

或者是否有其他方法可以获取超过特定大小的所有文件?

最后,我正在寻找这样的东西:

@echo off
for /r %%F in (*.png) do (
  if %%~zF gtr 100000
      Resize %%F by .5  
)

(注意:Resize 行是伪的,我还没有创建该部分。)

【问题讨论】:

    标签: loops batch-file


    【解决方案1】:
    @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
    )
    

    批处理中的下一行是其他命令,因此没有括号或没有命令如果不完整。

    【讨论】:

      猜你喜欢
      • 2013-07-19
      • 1970-01-01
      • 2012-07-30
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多