Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何删除文件夹及其子文件夹中的所有文件(Windows 7中具有特定名称的文件除外)_Batch File_Scripting_Windows 7 X64_Delete File - Fatal编程技术网

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>\