Показать полную графическую версию : получить список папок, имеющих внутри файлы определенного типа
Добрый день!
Прошу помощи в решении такой задачи:
Есть некоторое количество папок, содержаших в себе файлы разных типов, предположим вот такие файлы:
D:\one\track1.mp3
D:\one\track2.mp3
D:\one\track2.flac
D:\two\track2.flac
D:\three\track3.mp3
d:\four\track4.flac
Мне нужно получить список папок в которых есть файлы с расширением .mp3, то есть на выходе должен получится такой список:
d:\one
d:\three
Как мне это реализовать? Заранее спасибо :)
Если в именах папок есть кириллица - сохраняем 866
@Echo Off
Set R="0"
Set Spisok=d:\List.txt
For /f "Delims=" %%a In ('Dir /s /b /a-d "d:\*.mp3"') Do Call :1 "%%~dpa"
Goto:Eof
:1
If %R% NEQ %1 (
Set R=%1
If %R% NEQ "0" Echo %R:~1,-2% >>%Spisok%
)
Список будет представлен d:\List.txt
Благодарю.
Посмотрев на Ваше решение пришел к такому скрипту:
@ECHO OFF
SET R="0"
FOR /R %%A IN ("*.mp3" "*.flac") DO (
call :1 "%%~dpA"
)
goto :eof
:1
SET R=%1
move /Y "%R:~1,-2%" "E:\Music"
Перемещает все папки в текущем каталоге, содержащие музыку, в E:\Music
Вроде работает, за исключением одного момента - если встречаются одинаковые названия папок по месту назначения и откуда забираем - move выдает access denied и перемещение не происходит.
Если в именах папок есть кириллица - сохраняем 866 »
zion87, не критики ради, а пользы для. Объясните мне, в чем будет разница в этом конкретном файле при сохранении его в кодировках 1251 и 866? Ибо, скрипт не содержит кириллицы и каких либо других символов, которые различаются в этих кодировках.
Проверил, скрипты после сохранения идентичны при побайтовом сравнении.
gora, я тоже хотел было сказать про конкретный случай, но промолчал ;).
gora, просто у меня при 1251 русские символы записывались в блокнот кракозаброй, но если и без этого работает тогда я рад )))) Спасибо за правильную критику!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.