【发布时间】:2021-03-12 05:15:41
【问题描述】:
我怀疑在 for 循环中进行比较(if 语句): 我在一个文件夹中有很多文件,我想进行两个比较:
- 如果文件是在当年创建的 (!dateFile:~6,4!equ %date:~6,4%)
- 如果文件大小为0字节(%%~Za equ 0)
当我找到符合这些条件的文件时,我想显示“ok”。
我有下一行代码,但它不起作用:
for /f "tokens=* delims= " %%a in ('dir /s/b/a-d "FOLDER\"') do set dateFile=%%~ta if ((!dateFile:~6,4! equ %date:~6,4%) & (%%~Za equ 0)) echo "ok"
一些帮助?谢谢:)
【问题讨论】:
-
... do set "dateFile=%%~ta" & if ...- (假设您启用了延迟扩展。) -
@Stephan 是的,我的代码开头有“setLocal EnableDelayedExpansion”,并且随着该更改继续失败:(
-
if (a equ a) & (b equ b) ...不起作用。你想要if a equ a if b equ b ...。 -
类似的东西?
for /f "tokens=* delims= " %%a in ('dir /s/b/a-d "FOLDER\"') do set dateFile=%%~ta & if !dateFile:~6,4! equ %date:~6,4% & if %%~Za equ 0 echo "ok" -
没有。和以前一样的问题。再读一遍我之前的两个cmets。
标签: windows if-statement batch-file cmd