执行我的 cmd 文件时出现意外的错误变量

Error variable unexpected when executing my cmd file

问题是,当我将此行放入 cmd 文件时,它不起作用,我在命令行上出现错误 window

for /F "tokens=*" %i in (dir /S /B *.log) do del %i

错误:

Unexpected variable i (translated from french because I have french windows)

有什么想法吗?

for /F "tokens=*" %%i in ('dir /S /B *.log') do del "%%i"
                  ^^      ^               ^         ^^^ ^
  • for 可替换参数中的百分号应在批处理文件中转义,将单个 % 替换为 %%

  • 要执行带有 for /f 的命令,您需要用单引号将命令括起来,或者,如果命令本身包含单引号,则使用反引号并包含 usebackq 子句在 for /f 选项中。

  • 最好引用文件引用以避免出现空格或特殊字符问题

反正这个命令可以写成

del /s *.log

而不是对每个文件执行 del 操作。

来自命令行:

for /F "tokens=*" %i in ('dir /S /B *.log') do del "%~i"

或者如果批量使用:

for /F "tokens=*" %%i in ('dir /S /B *.log') do del "%%~i"

解释:

  • 用单引号将 dir /S /B *.log 括起来;
  • 用双引号将文件名括起来,如下所示 del "%~i" 因为它可以包含空格...

资源(必读):

谢谢大家的帮助。请原谅我迟到的回答。

这是我最终采用的解决方案,感谢@MC ND

del /s *.log
del /s *.log0*
del /s *.tlog
rmdir /S /Q wls-admin\.wlnotdelete
rmdir /S /Q wls-myapp\.wlnotdelete