制作批处理文件查找具有不同扩展名的重复文件名,并对结果执行操作

制作批处理文件查找具有不同扩展名的重复文件名,并对结果执行操作

.mp3我想要做的是使用批处理文件搜索文件夹和子文件夹,以匹配以和结尾的文件名,.wma然后删除或移动*.wma重复项。

下面是我到目前为止想到的办法,我知道它至少有两个原因,是错误的。我搜索了互联网,尝试了很多方法,但现在我陷入了困境。有人能帮我解决这个问题吗?

for /r %%f in "(%userprofile%\my music\* - ?.*)" do del "%%f" /s/p

答案1

我不是 Windows 专家,但是福尔菲斯非常简单。
forfiles /p "%userprofile%\my music\" /s /m *.mp3 /C "cmd /c del @[email protected]"

答案2

我可以推荐 powershell 吗?

cd C:\users\Administrator\Desktop\test\


$Afiles = ls *.text
$Bfiles = ls *.txt

$Alist = @()
$Blist = @()

foreach( $A in $Afiles)
{
    $Alist += $A.BaseName
}

foreach( $B in $Bfiles)
{
    $Blist += $B.BaseName
}

foreach($A in $Alist)
{
    if($Blist -contains $a) 
    {
        rm ("$A.text") -WhatIf
    }
}

虽然这看起来可能有点复杂,但在我看来它的可扩展性和可重用性更强。

答案3

很抱歉提出这个老问题,但对于将来在这里遇到困难的人来说,请查看这个,它在一个批处理文件中起作用:

@ECHO OFF
FOR %%A IN (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) DO (DIR /B /S /A-D %%A:\>>FILELIST.TXT) 2>NUL

http://www.ehow.com/how_6926969_remove-files-xp-operating-system.html

答案4

这对我来说非常有用

forfiles /PC:\Projects\QualityPush\ /S /M first.txt /C “cmd /c echo @path”
forfiles /PC:\Projects\QualityPush\ /S /M second.txt /C “cmd /c echo @path”

这将为您提供子目录中任何匹配的每个文件的路径,并将它们整理在一起

相关内容