Batch file 如何删除文件夹及其子文件夹中的所有文件(Windows 7中具有特定名称的文件除外)
所以基本上, 假设我有一个示例文件夹,如下所示:Batch file 如何删除文件夹及其子文件夹中的所有文件(Windows 7中具有特定名称的文件除外),batch-file,scripting,windows-7-x64,delete-file,Batch File,Scripting,Windows 7 X64,Delete File,所以基本上, 假设我有一个示例文件夹,如下所示: C:\ └───Dox │ cat.txt │ dog.txt │ girl.txt │ ... │ └───NonDOx boy.txt girl.txt ... 我希望它看起来像这样 C:\ └───Dox │ girl.txt │ └───NonDOx
C:\
└───Dox
│ cat.txt
│ dog.txt
│ girl.txt
│ ...
│
└───NonDOx
boy.txt
girl.txt
...
我希望它看起来像这样
C:\
└───Dox
│ girl.txt
│
└───NonDOx
girl.txt
所以,是的,基本上,文件夹和子文件夹中的所有文件都应该被删除,除了girl.txt
,它位于随机文件夹中。
另外,文件夹和目录之间有什么区别?它像是一只猫吗
目录是一个包含一个或多个文件夹的文件夹,或者它与文件夹相同
我找不到将在子文件夹中删除并保留1(特定文件)的内容。我将按以下方式执行:
rem/*递归地循环根目录中的所有项(包括文件和子目录);
rem然后按逆字母顺序对它们进行排序,这样就会出现较低的目录层次结构级别
rem在更高级别之前出现,文件在其父子目录之前出现:*/
对于/F“delims=eol=|”%%F in('dir/S/B/A“C:\Dox\*.*”^ | sort/R'),请执行以下操作(
rem//检查当前项是否为文件(注意尾随的“\”以匹配目录):
如果不存在“%%F\”(
rem//当前项是一个文件,因此请检查其名称,如果不匹配,请删除:
如果/I不是“%%~nxF”==“girl.txt”del“%%F”
)否则(
rem//当前项是一个子目录,因此请尝试删除它;这只起作用
rem,当它为空时;前缀'2>nul'将抑制潜在的错误消息:
2> 数字rd“%%F”
)
)
删除除…以外的所有文件最简单(也是最安全)的方法是只将这些文件复制到备份文件夹,删除整个原始目录,然后将备份的文件放回原处。我之所以称之为安全,是因为如果所有需要的文件都存在,您可以在备份目录中进行检查:(未测试)
xcopy/S girl.txt\
光盘
树/F//验证是否所有内容都已正确复制
rmdir
xcopy/S\\
bash和批处理文件是完全不相关的,所以您要在什么环境下完成这项工作?欢迎作为新用户访问。请带上这本书,同时阅读。因此,这不是一个免费的脚本编写服务,也不是一个论坛,而是一个为程序员提供帮助的网站,帮助那些遇到明显问题的同事。希望有自己的研究和认真的编码尝试。删除和重新创建文件与保留文件不同,因为属性会丢失(例如,创建日期、所有者等);所以提问者必须决定这是否可以接受。。。
xcopy /S girl.txt <Backup_Directory>\
cd <Backup_Directory>
tree /F //verify if everything is well copied
rmdir <original_directory>
xcopy /S <Backup_Directory>\ <original_directory>\