我有一个包含以下内容的批处理文件:
cmd /k "cd C:\Files\ && for /r %%F in (*) do if %%~zF=0 del %%F"
将删除目录中的空文件,但它会检查所有文件,因此它不会占用一行命令,而是占用n个命令,其中n = C:\ Files \中的文件数,这使我无法使用下一行中的exit命令退出(关闭)CMD,因为它只在1个命令后执行。
在这种情况下,如何在运行该命令后关闭命令?谢谢!
答案 0 :(得分:1)
我在答案而不是评论中重复Stephan给出的正确答案,以避免将此问题列为未回答的问题。
通过运行cmd
显示的cmd /?
命令的帮助解释了选项/C
(关闭)和选项/K
的使用之间的区别(保持打开状态)。
好吧,没有必要在批处理文件中使用命令cmd
,因为* .bat文件由命令cmd
解释。因此批处理文件应仅包含
cd C:\Files\ && for /r %%F in (*) do if %%~zF==0 del "%%F"
以递归方式删除文件大小等于0字节的所有文件,即空文件。