我在批处理文件中有一个循环来删除目录中的所有文件(Windows 7)。但它仍然挂起,因为它仍然将命令发送到屏幕,即使我认为我已经压制它。这是我使用的命令:
for %i in (*) do if not %i == UPDATE.BAT del /s %i >nul 2>&1
测试了我的批处理脚本,日志显示它在此命令处停止。在命令行测试命令,输出" del / s file.ext> nul 2>& 1"命令提示目录中的每个文件,这是导致我的批处理文件挂起的原因。
我需要在这里更改什么?
答案 0 :(得分:2)
如果这是直接在打开的cmd窗口而不是批处理,则
您可以使用前导@
符号来抑制当前命令的输出。
@for %i in (*) do @if /i not "%i"=="UPDATE.BAT" @del "%i" >nul 2>&1
在带有@Echo off
的命令的批量切换输出中,并将for变量的%
符号加倍。
@Echo off
for %%i in (*) do if /i not "%%i"=="%~nx0" del "%%i" >nul 2>&1