Encontre todos os arquivos .mp3 e mova para o diretório especificado usando o lote

2

Como eu mudaria isso para encontrar .mp3 e ir para o diretório especificado?

@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
    
por David Custer 10.10.2013 / 23:57

2 respostas

3

Se você quiser apenas all MP3s de todos os subdiretórios em um diretório especificado ( sem subdiretórios), faça o seguinte:

@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

No entanto, irá substituir quaisquer duplicados no destino. Portanto, verifique se todos os MP3s têm nomes exclusivos. Isso também não excluirá os diretórios vazios da fonte depois que os MP3s forem removidos.

    
por 11.10.2013 / 11:57
2

Este comando do PowerShell moverá arquivos em $inputDir e subdiretórios que correspondem a $filterExt a $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

Estou supondo que você tenha uma versão do Windows nova o suficiente para usar o PowerShell e realmente não precise usar o arquivo em lotes do DOS?

    
por 11.10.2013 / 04:53

Tags