【发布时间】:2016-08-26 06:45:10
【问题描述】:
首先,过去已经回答了类似的问题,但不完全是我的问题。在其他一些解决方案中,建议隐藏文件夹/文件和更改属性,我不希望这样做,除非没有更简单的方法可用。另外,我已经尝试过这里建议的解决方案(以及其他几个):MS-DOS command to delete all files except one。
但由于两个原因无法满足我的需要:
- 这也删除了文件,我不想。
- 这并没有删除子文件夹,而只是删除了文件。
所以,我有文件夹 c:/users/data,在那里,我有 5 个文件夹和 6 个文件,我想删除除 web.config 之外的所有文件,为此我运行批处理文件,如下所示:
@echo off
for %%j in (C:\Users\data\*) do if not %%j == Web.config del %%j
pause
但是当我运行批处理文件时,这会删除所有文件,包括web.config,并且不会删除任何子文件夹,如果我使用/d 开关,它只会删除文件夹而不是文件。如何同时删除文件和文件夹?
【问题讨论】:
-
检查
for %%j in (C:\Users\data) do echo %%j的输出并验证%%j是否真的是你想要的(我怀疑......)reference -
@Stephan,这是一个错字,我已经编辑了目录错误的问题,但问题是,这个
for %%j in (C:\Users\data\*) do echo %%j只输出文件而不是所有内容,如果我说像for /d %%j in (C:\Users\data\*) do echo %%j这样的话,那么只输出文件夹,而我想同时查看文件和文件夹.. -
检查
for %%j in (C:\Users\data\*) do echo %%j的输出并重新考虑if not C:\Users\data\web.config == web.config是否可以工作...... -
将文件复制到别处有什么问题,删除所有内容并将文件放回原处?至少您的批处理文件将更具可读性,因此更易于维护。
-
@Dominique,只有一个问题,我想从其中删除除 web.config 之外的所有内容的 50 多个文件夹,然后从另一个文件夹中复制到这 50 个文件夹中,因此,我认为( mvho),另一个复制命令会增加一点时间问题。但是,请提出一些建议,我将非常乐意尝试..
标签: batch-file cmd