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

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

Nun-Nun 23-02-2010 17:20 1354050

Как с помощью bat-ника записать названия папок в текстовый файл?
 
Подскажите, плиз, по сабжу.
Заранее прошу сильно не пинать малограмотного в части bat-ников.

gora 23-02-2010 17:50 1354070

Код:

@Echo Off
:: путь к каталогу с исследуемыми папками
Set folder=c:\Windows
Del /q listfolder.txt 2>Nul
For /F "UseBackQ Delims=" %%I In (`Dir "%folder%" /AD /B /ON 2^>Nul`) Do Echo %%I>>listfolder.txt
Pause>Nul


Nun-Nun 23-02-2010 18:10 1354086

gora,

Огромное спасибо! Всё работает!

Если не сложно, поясните, как сделать, чтобы создаваемый файл был в нужной кодировке, например, не в 866, а в 1251, т.е. чтобы при его просмотре русские названия папок не отображались абракадаброй?

gora 23-02-2010 18:36 1354107

Цитата:

Цитата Nun-Nun
как сделать, чтобы создаваемый файл был в нужной кодировке, например, не в 866, а в 1251 »

Добавьте второй строкой:
Код:

ChCp 1251>Nul

Nun-Nun 23-02-2010 19:05 1354124

gora,

Прошу прощения, не понял, куда ChCp 1251>Nul в Вашем скрипте нужно добавить. Если ставлю следующей строчкой после For, то файл всё равно получается в кодировке 866. :(

gora 23-02-2010 19:07 1354127

Второй строкой - это так:
Код:

@Echo Off
ChCp 1251>Nul
:: путь к каталогу с исследуемыми папками
...


Nun-Nun 23-02-2010 19:21 1354134

gora,

ОК, спасибо! Только ChCp 1251>Nul пришлось поставить непосредственно перед строчкой For, иначе не работает.

Nun-Nun 23-02-2010 19:54 1354164

А возможно ли сделать, чтобы каждый раз не редактировать bat-ник при смене целевой папки, а просто чтобы закинуть его в нужную папку и он при запуске автоматом считывал все подпапки, расположенные в ней?

gora 23-02-2010 19:59 1354168

Цитата:

Цитата Nun-Nun
просто чтобы закинуть его в нужную папку и он при запуске автоматом считывал все подпапки, расположенные в ней? »

Код:

@Echo Off
ChCp 1251>Nul
Del /q listfolder.txt 2>Nul
For /F "UseBackQ Delims=" %%I In (`Dir /AD /B /ON 2^>Nul`) Do Echo %%I>>listfolder.txt
Pause>Nul


Nun-Nun 23-02-2010 20:15 1354174

Огромное спасибо! Работает!


Время: 00:30.

Время: 00:30.
© OSzone.net 2001-