Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   получить список папок, имеющих внутри файлы определенного типа (http://forum.oszone.net/showthread.php?t=255529)

tempik 05-03-2013 11:37 2104547

получить список папок, имеющих внутри файлы определенного типа
 
Добрый день!
Прошу помощи в решении такой задачи:

Есть некоторое количество папок, содержаших в себе файлы разных типов, предположим вот такие файлы:

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

Как мне это реализовать? Заранее спасибо :)

zion87 05-03-2013 12:46 2104579

Если в именах папок есть кириллица - сохраняем 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

tempik 05-03-2013 13:33 2104610

Благодарю.
Посмотрев на Ваше решение пришел к такому скрипту:
Код:

@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 и перемещение не происходит.

gora 05-03-2013 15:33 2104678

Цитата:

Цитата zion87
Если в именах папок есть кириллица - сохраняем 866 »

zion87, не критики ради, а пользы для. Объясните мне, в чем будет разница в этом конкретном файле при сохранении его в кодировках 1251 и 866? Ибо, скрипт не содержит кириллицы и каких либо других символов, которые различаются в этих кодировках.
Проверил, скрипты после сохранения идентичны при побайтовом сравнении.

Iska 05-03-2013 17:15 2104731

gora, я тоже хотел было сказать про конкретный случай, но промолчал ;).

zion87 05-03-2013 19:27 2104849

gora, просто у меня при 1251 русские символы записывались в блокнот кракозаброй, но если и без этого работает тогда я рад )))) Спасибо за правильную критику!!!


Время: 09:37.

Время: 09:37.
© OSzone.net 2001-