我该如何改变它来找到 .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 批处理文件?