Компьютерный форум 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=187535)

pma87 06-10-2010 02:16 1512443

Список директорий и поддиректорий
 
Хочу написать скрипт для автоматического создания virtualhost для apache и прописыванием в hosts. Ниже скрипт, который должен сканировать домены (директории) на диске F: и поддомены (поддиректории) в них, остальной уровень вложенности игнорировать. Домены и поддомены должны хранится в разных переменных.


Код:

ChCp 1251>Nul
Set folder=f:
Del /q listfolder.txt 2>Nul
For /F "UseBackQ Delims=" %%I In (`Dir "%folder%" /AD /B /ON 2^>Nul`) Do (

  set domeny=%%I

  For /F "UseBackQ Delims=" %%a In (`Dir %folder%/%domeny% /AD /B /ON 2^>Nul`) Do (
  Echo %%a>>listfolder.txt
  )
)
Pause>Nul

не работает "set domeny=%%I", значение не присваивается. В bat не силен, может кто сможет помочь? Что не правильно в скрипте?

gora 06-10-2010 08:23 1512499

Цитата:

Цитата pma87
Что не правильно в скрипте? »

[решено] Как работать с переменной внутри цикла FOR?

amel27 06-10-2010 09:45 1512530

можно и без DIR обойтись:
Код:

chcp 1251>Nul 2>listfolder.txt
for /d %%i in (t:\*) do for /d %%a in ("%%i\*") do echo %%a >>listfolder.txt


pma87 06-10-2010 23:20 1513151

amel27, спасибо за помощь, но Ваш скрипт выдает результат:

f:\site1.loc\www
f:\site2.loc\www
f:\site3.loc\www

Можно сделать так, чтобы в одной переменной было site1.loc, а в другой www?

pma87 07-10-2010 03:03 1513241

Вложений: 1
Всем спасибо за помощь, скрипт написал. Скрипт сканирует директории доменов и поддоменов, записывает их в hosts и httpd-vhosts.conf. Настройки указать в bat файле. Буду рад выслушать замечания. В файлы start-host.txt и start-httpd-vhosts.txt записываются первоначальные конфигурации host и httpd-vhosts.conf.

amel27 07-10-2010 04:03 1513253

Цитата:

Цитата pma87
Можно сделать так, чтобы в одной переменной было site1.loc, а в другой www? »

%%~ni - 1-й уровень, %%~na - 2-й уровень
Код:

chcp 1251>Nul 2>listfolder.txt
for /d %%i in (t:\*) do for /d %%a in ("%%i\*") do echo "%%~ni"--"%%~na" >>listfolder.txt

P.S. в этом методе скрытые каталоги игнорируются автоматически, для DIR нужен ключ: "/AD-H"


Время: 17:09.

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