Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов
задача не сформулирована. » Помоему формулировка ясна - Как с помощью переменной в бат файле записать поочередный их запуск
yurfed, ну не знаю, но моих телепатических способностей не хватило, что бы догадаться, что посты 389 и 396 звенья одной задачи. Да и местоположение этих файлов не известно, то ли в одной папке, то ли рассыпаны по разным!? Есть там еще файлы кроме оговоренных 100 или нет!? :dont-know
В общем с такой постановкой задачи решать ее!? Я пасс.
Да и Start для "запуска" reg файлов как то не очень ;)
yurfed, Ну задача в общем конечно ясна. И ты в общем сам и сказащ как надо ее решать:
я себе это представляю так: автоматом определяются имена файлов и заносятся допустим в текстовый файл, а потом запускаются. »
Просто я не знаю как это осуществить на практике »:
Смотришь справку Пуск->Справка и поддержка. Вводищь в поле для поиска cледующее словосочетание: Справочник по параметрам командной строки
И просматриваешь, интересуешься, задаешься вопросом, находишь ответ.
В твоем случае просмотри комманду DIR, павраметры должны быть такие:
Выводить только имена файлов, выводить в сокращенном виде(не выводя заголовочные сведения), Подскажу что это параметр /B.
В файл направляешь вот так: any_command >list.txt
про чтение из файла, узнаешь почитав о комманде FOR, подскажу что выглядеть это будет примерно так:
FOR /F "TOKENS=1" %%I IN ('TYPE LIST.TXT') DO IF NOT "%%I"=="" (
запуск программы %%I
)
Будут вопросы спрашивай...
sLiDeR-X
23-10-2008, 06:52
yurfed, все верно :) А вот старт полезен только для запуска файла, а мне нужно тихо интегрировать в реестр, так что только рег импорт :)
gora, все файлы лежат в одной папке. По-моему, задача была поставлена ясно :) (Если что не так - извините)
___oj, спасибо за советы :)
Сделал я как написал ты, прочитал справку, вот что получилось:
dir /b >list.txt
FOR /F "TOKENS=1" %%I IN ('TYPE LIST.TXT') DO IF NOT "%%I"=="" (reg import %%I)
все верно? :)
sLiDeR-X
23-10-2008, 10:21
___oj, а кто знает? )))
а кто знает? » Проверьте сами, вставьте вместо reg import в вашу строку echo и посмотрите выведет ли в консоль имена ваших 100 файлов.
sLiDeR-X
23-10-2008, 12:38
gora, да, действительно, сам не додумался :)
Ставлю echo - работает, а рег импорт нет :(
Как сделать так, чтоб батник запускал рег импорт для файлов, лежащих на 1 дирикторию глубже?
Т.е.
Reg
-Files
-1.reg
-2.reg
-....reg
-100.reg
-Import.bat
Вот скрипт Import.bat: (но так не работает :()
dir Files\ /b >list.txt
FOR /F "TOKENS=1" %%I IN ('TYPE LIST.TXT') DO IF NOT "%%I"=="" (reg import Files\%%I)
Переделал чуток скрипт, теперь в текстовик добавляются полные пути к файлам
dir Files\ /b/s >list.txt
FOR /F "TOKENS=1" %%I IN ('TYPE LIST.TXT') DO %%I
Вот при таком скрипте все работает, только нужно соглашаться на внесение в реестр. А мне нужно скрыто это сделать, то есть как бы DO reg import %%I . Но так тогда не работает :(
sLiDeR-X
Как сделать так, чтоб батник запускал рег импорт для файлов, лежащих на 1 дирикторию глубже? »Set $PATH=.\Files\*.reg
For /F "Delims=" %%i In ('Dir /B /A:-D "%$PATH%"') Do @Echo REG Import "%%i"
P.S. перед боевым запуском убери "@Echo"
truvo
человек создал зачем-то свой нужный ему каталог, с названием, например, Temp for work »
такой не почистится, разве только "Temp.for work", перебирать тоже ненадежно - системные каталоги могут называться как угодно - точнее как заказано при установке, особенно если на диске несколько ОСей
sLiDeR-X
23-10-2008, 13:30
amel27, спасибо за помощь.... но то же самое, если убрать рег импорт, то запускается и ставится, только требует подтверждения, как только ставлю рег импорт, то ничего не происходит :(
И кстати не работает совсем с Do REG Import "%%i" (пишет ошибку), а если так Do REG Import "Files\%%i" то пишет мол все нормально, но ничего не добавляет
amel27, sLiDeR-X, а почему не "regedit /s "%%i" ?
amel27, sLiDeR-X, regedit /s », для таких действий явно подходит в самый раз (сам так делал)
а почему не "regedit /s »Дык, таково желание заказчика ;)если можно, то через reg import »
sLiDeR-X,
dir Files\*.reg /b/s >list.txt
FOR /F "TOKENS=1" %%I IN ('TYPE LIST.TXT') DO reg import %%I
ставит все втихую.
sLiDeR-X
24-10-2008, 06:24
Спасибо всем.... НО! никакой вариант не работает :( Вот не понимаю, хоть убей не работает.
Вот шаблоны всех: проверьте у себя пожалуйста кто может
http://rapidshara.ru/54455
sLiDeR-X, не морочь людям голову. Все работает (кроме 3.bat), нужно то только в реги добавить пустую строку в конец.
открыть в блокеноте, переместиться в конец файла, в конец строки, Enter, сохранить
sLiDeR-X
24-10-2008, 10:57
vserd, блин, ну я то откуда знал, что строчку добавлять надо, вот и писал, что не работает.
Всем спасибо :) Помогли :)
ну я то откуда знал, что строчку добавлять надо »
так и я не знал. Запустил с помощью regedit добавилось, а через reg import нет. Вот и стал разбираться... всего-то 15 минут делов :))
sLiDeR-X
24-10-2008, 16:23
И еще вопросик %)
Как сделать так, чтоб при команде: dir Global\*.reg /b/s >list.txt русские названия не переделывались в OEM кодировку а оставались в ANSI ?
Заранее спасибо :)
Как сделать »Добавить перед этой строкой эту: chcp 1251
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.