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

时间:2015-04-09 07:42:01

标签: windows command-line cmd

问题是,当我将此行放在cmd文件中时,它不起作用,我在命令行窗口上有错误

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

错误:

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

请问好吗?

3 个答案:

答案 0 :(得分:1)

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

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

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

无论如何,这个命令可以写成

del /s *.log

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

答案 1 :(得分:0)

从命令行:

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",因为它可能包含空格......

资源(必读):

答案 2 :(得分:0)

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

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

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