Ilyansk
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору а че тут думать?! прыгать надо Код: @echo off if exist outfile.txt del outfile.txt setlocal enabledelayedexpansion set "i=0" FOR /D %%A IN (*.*) DO @call :maker %%A %0 goto :eof :maker if exist %1\sbo*.htm ( for %%N in (%1\sbo*.htm) do "set FN=%%N" set /a i+=1 echo Item: !i! >>outfile.txt echo везде одинаковый текст >> outfile.txt echo Директория: %1 >>outfile.txt echo Файл: %1/!FN! >>outfile.txt echo некоторый текст2 >>outfile.txt ) | помесить этот батник в папку MainDir, оттуда и запустить. Результат в виде файла outfile.txt должен появиться в этой же папке. Файл создастся в кодировке DOS (866) и notepad покажет кракозябры. Можно сделать и в кодировке ANSI, тогда после setlocal ... вставить строку chcp 1251 . Код не отлажен, сами попробуйте, здесь уместнее давать направления. параметр %0 в DO @call :maker %%A %0 по идее несет имя самого запускаемого батника с полным путем. Его можно разобрать и делать строки echo Директория: %1 >>outfile.txt echo Файл: %1/!FN! >>outfile.txt более правильными, т.к. сейчас они будут без путей,например Директория: dir_with_file Файл: dir_with_file/sbodir_with_file.htm a надо бы Директория: диск:\путь\dir_with_file Файл: диск:\путь\dir_with_file/sbodir_with_file.htm Вот эти диск:\путь\ можно взять из параметра %0. Наберите в cmd for /?, поможет батник несколько кривоват, берет имя последнего sbo*.htm, если он вдруг в директории не один, не включает в отчет имена директорий, в которых нет sbo*.htm нет предела совершенству, дерзайте. p.s. Вольтер как-то сказал (или не Вольтер?) "Покажите мне того, кто написал хотя бы пару строк (кода?!) и я доведу его до самоубийства" О, как! Добавлено: Кста, попутно вопрос Есть ли решение на ВАТ файле у задачи спрашиваем у юзера параметр, если в течение N сек. нет ответа, берем по умолчанию ? | Всего записей: 70 | Зарегистр. 27-07-2006 | Отправлено: 06:53 05-12-2007 | Исправлено: Ilyansk, 07:10 05-12-2007 |
|