使用For / R从子目录中删除文件

时间:2015-12-11 22:20:56

标签: batch-file cmd

这是一个非常初学者的问题。我以前从未使用过脚本,今天我决定开始学习,因为升级到Windows 10的一些未知原因复制了我的许多文件。音乐文件有一种模式,重复项以-1,-2,-3等结尾,依此类推。我用以下内容创建了一个脚本,它确实可以删除重复的文件。

del E:\folder_name\*-1.mp3
del E:\folder_name\*-2.mp3
del E:\folder_name\*-3.mp3

但是,文件夹太多,逐个指定将永远带我。我发现这个脚本以递归方式循环遍历子目录。

For /R E:\music_sample\ %%G IN (*-1.mp3) do Echo del "%%G"

产生以下输出

enter image description here

但它实际上并没有删除文件。你能帮我理解我做错了什么吗?谢谢!

3 个答案:

答案 0 :(得分:3)

删除术语" Echo"来自你的剧本:

config = ConfigParser.RawConfigParser()

答案 1 :(得分:1)

花点时间学习新东西总是很棒!

有时候已经有了这个工作的工具。

Agent Ransack允许您按模式/正则表达式搜索文件。这种或类似的东西可能在将来为您节省一些时间。

答案 2 :(得分:0)

del /s "%userprofile%\music\*-1.mp3" "%userprofile%\music\*-2.mp3 "%userprofile%\music\*-3.mp3"

输入

set u

del /?

寻求帮助。

命令提示符具有自己的正则表达式。即使令牌是相同的,它也会与dos不同。 dos *中的EG仅在文件名或扩展名末尾有效,但在命令提示符下,它在任何地方都有效。