问题是,当我将此行放在cmd文件中时,它不起作用,我在命令行窗口上有错误
for /F "tokens=*" %i in (dir /S /B *.log) do del %i
错误:
Unexpected variable i (translated from french because I have french windows)
请问好吗?
答案 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