batch-file - BATCH : How to read a . txt 文件删除具有特定文件名的某些列出的文件

标签 batch-file command-line windows-7 cmd command-prompt

希望我能对我正在制作的批处理文件获得一些帮助。

我的批处理文件当前扫描目录并记录所有文件夹、子文件夹并将它们导出到 list.txt 文件中,方法如下:

dir /a "special\program\"/s /b /-p /o:gen >list.txt

而且效果很好。但是我现在想做的是扫描 list.txt 文件并从 .txt 文件中的路径中删除某些文件名,我不想删除文件类型,而是删除名称的一部分。

因为基本上每个文件夹中有超过 50 个文件,其中一些文件可能包含名称示例: enter image description here

查看文件:file_kool.rar、fileOk.rar、somethingRANDOM.rar,我想删除其中没有名称“file”的文件,这样“somethingRANDOM.rar”,不包括 file_kool.rar 和 fileOk.rar ,但我不确定如何添加排除项,因为我无法指定要删除的每个文件名,因为它们太多了,所以我猜测它们是一种我可以使用通配符排除其中包含"file"的 .rar 文件的方法删除未注释的 .rar 文件?

我尝试过这个:

@echo off
::Check Directories, Sub-Folders and list all files within and save to a list.txt file
dir /a "special\program\"/s /b /-p /o:gen >list.txt
::Read list.txt and delete all .rar files accept for the exception ones with "file" in them
for /F "tokens=*" %%A in (list.txt) do del /s special\program\ *file? 

或者代替这是他们在 robocopy 中排除文件的方法: 想法#2:

robocopy "program" "special\program" /e /xf *something.rar* *.rar /xd random random2 *file?

我尝试了这个,这是我之后的首选,但我无法弄清楚如何在排除项中添加这样一个事实:我想删除所有接受包含"file"(排除项)的 .rar 文件。

有没有人有解决办法。我确信他们是我所缺少的简单的东西?

注意:我已经解决了我的问题,对不起大家,当我输入它时,我把自己搞糊涂了。

最佳答案

下面的批处理文件将删除“special\program”文件夹中名称以“file”开头的所有文件:

cd "special\program"
del /S file*.*

如果要删除任意位置名称中包含“file”的文件,只需更改通配符即可:*file*.*

编辑:回复评论

在你的问题中,你说:“我想删除其中名称为“file”的文件”,所以我认为你想删除文件名任何部分包含“file”的文件。现在您在评论中说您想要相反的东西!我强烈鼓励您edit your question并明确这一点,包括您更改了原始问题的事实;否则,可能阅读此主题的人会感到困惑,直到他们阅读主题末尾的小评论... :-(

无论如何,下面的批处理文件会执行您想要的操作(我希望如此),即:删除“special\program”文件夹中的所有 .rar 文件除了那些具有“file”子字符串的文件文件名的任何部分

@echo off
setlocal EnableDelayedExpansion

for /R "special\program" %%a in (*.rar) do (
   set "filename=%%~Na"
   if "!filename:file=!" equ "%%~Na" del "%%a"
)

关于batch-file - BATCH : How to read a . txt 文件删除具有特定文件名的某些列出的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189712/

相关文章:

batch-file - 如何从cmd批处理文件中的变量获取目录路径

Java,使用一个基于字符串输入的类

linux - 如何使目录下的所有文件在 linux 上都可读?

windows - 使用 SC.exe 设置服务凭据密码失败

delphi - 为什么 PC 之间的控件缩放比例不同?

java - 如何从批处理脚本检查 Java 安装?

command-line - 使用命令行在文件中查找 2 个值 |指令

c++ - 用于检测启动了哪些程序的后台脚本

batch-file - 使用 "mstsc/admin"和密码登录远程

c++ - 在 Windows 7 中调用 Process32First 时出现 ERROR_BAD_LENGTH