标题: 这个问题该怎么用批处理解决呢(重复文件的删除问题)
[打印本页]
作者: tommy725
时间: 2007-4-11 11:15
标题: 这个问题该怎么用批处理解决呢(重复文件的删除问题)
大家能帮我看看这个问题用批处理编程如何解决吗?
比如在一个文件夹里我有一些.mp3和.mpga的文件.但个别.mp3文件和.mpga重名.我希望在这个文件夹下删除和.mp3重名的.mpga文件.
请看列子(重复的.mpga红的文件删除)
Alison Krauss - Looking in the Eyes of Love.mp3
Alison Krauss - No Place to Hide.mp3
Alison Krauss - Pain of a Troubled Life.mp3
Alison Krauss - So Long, So Wrong.mp3
Alison Krauss - The Road Is a Lover.mp3
Alison Krauss - There Is a Reason.mp3
Alison Krauss & Union Station - It Doesn't Matter.mp3
Alison Krauss & Union Station - It Doesn't Matter.mpga
BabyNowThatIveFoundYou.mp3
BabyNowThatIveFoundYou.mpga
ForgetAboutIt.mp3
ForgetAboutIt.mpga
IWill.mp3
IWill.mpga
Stay.mp3
Stay.mpga
thanks.mpga
for.mpga
your.mpga
help.mp3
我做了个test,把以上文件名拷贝到纪事本里以 list.txt保存,然后用以下代码生成以上文件名的测试文件:
for /f "delims=" %%i in (list.txt) do @echo>%%i
[
Last edited by tommy725 on 2007-4-10 at 10:53 PM ]
作者: lxmxn
时间: 2007-4-11 11:50
试试这个,没有考虑文件大小是否相同。
@echo off&Setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /b/a-d *.mp3 *mpga') do (
if not defined "%%~na" (set ""%%~na"=Batcher") else (
if /i "%%~xa"==".mpga" del "%%~nxa"
)
)
作者: tommy725
时间: 2007-4-11 11:52
文件大小相同不重要,只要能删掉重复的.mpga就好。我试一下,先谢了:)
作者: 20080610
时间: 2007-4-11 12:02
直接删就可以了.
for /f "delims=" %%a in ('dir/b *.mp3') do @del "%%~na.mpga" 2>nul
作者: tommy725
时间: 2007-4-11 12:05
直接删会把不和.mp3重复的.mpga文件也删除吗?
请问结尾2>nul什么意思
[
Last edited by tommy725 on 2007-4-10 at 11:21 PM ]
作者: 20080610
时间: 2007-4-11 12:28
句柄论坛有不少介绍的帖子了.
下面这个就可以不用.
for /f "delims=" %%a in ('dir/b *.mp3') do @if exist "%%~na.mpga" del "%%~na.mpga"
作者: lxmxn
时间: 2007-4-11 12:30
Re 20080610:
兄的方法比较巧妙,赞一个。
作者: flyinspace
时间: 2007-4-11 12:38
Re 20080610:
呵呵,看来我迂腐了。。我刚刚把脚本写出来。
不过只是限制于从文本中提出文件名。然后提示那些是重复的文件名。。
脚本就不献丑了。
作者: htysm
时间: 2007-4-12 00:56
这段代码确实漂亮,干练。
作者: logictianjin
时间: 2007-4-12 03:12
re 20080610
2段代码真是漂亮 ,把所学融会贯通,羡慕中!!!
lxmxn兄看来是把问题复杂话了,我看到FOR的那些括号就晕,哈哈!!!!!