查找所有 .mp3 并使用批处理移动到指定目录

查找所有 .mp3 并使用批处理移动到指定目录

我该如何改变它来找到 .mp3 并移动到指定目录?

@echo off
set extlist=mkv mp4 mp3
set rootfolder="C:\Users\Fred\Downloads\uTorrent\Downloads\Complete"
pushd %rootfolder%
if not ["%cd%"]==[%rootfolder%] echo Aborting as unable to change to %rootfolder% && goto End
attrib /s /d -r
for %%a in (%extlist%) do attrib /s *.%%a +r
del. /s /q
for /r %%a in (.) do rd "%%~a"
:End
popd

答案1

如果你只是想要全部将所有子目录中的 MP3 复制到一个指定目录 (没有子目录)您可以执行以下操作:

@echo off
mkdir g:\someplace
set rootfolder="C:\Users\Fred\Downloads\uTorrent\Downloads\Complete"
for /r %rootfolder% %%f in (*.mp3) do move /Y "%%f" g:\someplace

将要但是会覆盖目标中的任何重复项。因此请确保所有 MP3 都有唯一的名称。这也不会在 MP3 移出后从源中删除空目录。

答案2

此 PowerShell 命令将移动与以下内容匹配的文件和$inputDir子目录:$filterExt$outputDir

$inputDir = "C:\Users\Fred\Downloads\uTorrent\Downloads\Complete";
$outputDir = "E:\MP3Files";
$filterExt = "*.mp3";

Get-ChildItem -Path $inputDir -Recurse -Filter $filterExt | Move-Item -Destination $outputDir

我假设您的 Windows 版本足够新,可以使用 PowerShell,而实际上不需要使用 DOS 批处理文件?

相关内容