我需要删除 PC 上某个文件夹中的所有文件bin
和obj
文件夹。因此,我想用批处理文件来执行此操作,但我不熟悉 Windows 中的批处理文件。请帮忙。
[编辑]
与用户讨论后DMA57361
,我得到了当前的解决方案(但仍然存在问题,请参阅我们的评论):
创建一个.bat 文件,并粘贴以下命令:
start for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
或者
start for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s "%%d"
@DMA57361:当我运行你的脚本时,出现以下错误。有什么想法吗?
答案1
这之前已回答在 Stack Overflow 上,我从那里获得了这个答案的主要内容。
尝试以下命令,您可以从内部运行它cmd
:
for /d /r . %d in (bin,obj) do @if exist "%d" rd /s/q "%d"
如果需要更改其他文件夹,则只需(bin,obj)
在命令中间将新项目添加到集合中。
这将删除所有匹配的内容,且不会发出警告,也不会使用回收站- 因此,如果您想要额外的安全性,请在最后删除/q
从调用到的rd
,系统应该在每次删除之前询问您。
for /d /r . %d in (bin,obj) do @if exist "%d" rd /s "%d"
如果你打算在批处理文件,您需要用 替换变量的每个实例%d
,%%d
如下所示:
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
OR
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s "%%d"
根据问题评论中的转换
如果命令拒绝在批处理文件中运行(无法在此处复制),请尝试在命令前加上前缀start
。虽然这会启动与批处理文件同时运行的进程,这可能会导致其他问题,但它似乎更有可能正常工作。
另外,如果你有文件命名obj
或bin
位于命令正在处理的文件夹树中,那么您将收到每个遇到的具有匹配名称的文件的错误消息。这些匹配的文件不会被删除,也不会妨碍命令删除它应该删除的内容。换句话说,它们可以被安全地忽略。
答案2
这些命令应该在cmd上运行。
删除 *.obj
删除*.bin
答案3
做就是了
del /s /p bin
del /s /p obj