2

Как бы я изменил это, чтобы найти .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

2 ответа2

3

Если вы просто хотите, чтобы все 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?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .