Войти

Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31

yurfed
22-10-2008, 23:57
задача не сформулирована. » Помоему формулировка ясна - Как с помощью переменной в бат файле записать поочередный их запуск

gora
23-10-2008, 00:14
yurfed, ну не знаю, но моих телепатических способностей не хватило, что бы догадаться, что посты 389 и 396 звенья одной задачи. Да и местоположение этих файлов не известно, то ли в одной папке, то ли рассыпаны по разным!? Есть там еще файлы кроме оговоренных 100 или нет!? :dont-know
В общем с такой постановкой задачи решать ее!? Я пасс.

Да и Start для "запуска" reg файлов как то не очень ;)

___oj
23-10-2008, 00:41
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)

все верно? :)

___oj
23-10-2008, 08:28
все верно? »
Незнаю.

sLiDeR-X
23-10-2008, 10:21
___oj, а кто знает? )))

gora
23-10-2008, 10:27
а кто знает? » Проверьте сами, вставьте вместо 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 . Но так тогда не работает :(

amel27
23-10-2008, 13:14
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" то пишет мол все нормально, но ничего не добавляет

ShaddyR
23-10-2008, 15:12
amel27, sLiDeR-X, а почему не "regedit /s "%%i" ?

zeroua
23-10-2008, 15:16
amel27, sLiDeR-X, regedit /s », для таких действий явно подходит в самый раз (сам так делал)

gora
23-10-2008, 15:19
а почему не "regedit /s »Дык, таково желание заказчика ;)если можно, то через reg import »

vserd
23-10-2008, 19:18
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

vserd
24-10-2008, 10:12
sLiDeR-X, не морочь людям голову. Все работает (кроме 3.bat), нужно то только в реги добавить пустую строку в конец.
открыть в блокеноте, переместиться в конец файла, в конец строки, Enter, сохранить

sLiDeR-X
24-10-2008, 10:57
vserd, блин, ну я то откуда знал, что строчку добавлять надо, вот и писал, что не работает.
Всем спасибо :) Помогли :)

vserd
24-10-2008, 11:13
ну я то откуда знал, что строчку добавлять надо »
так и я не знал. Запустил с помощью regedit добавилось, а через reg import нет. Вот и стал разбираться... всего-то 15 минут делов :))

sLiDeR-X
24-10-2008, 16:23
И еще вопросик %)
Как сделать так, чтоб при команде: dir Global\*.reg /b/s >list.txt русские названия не переделывались в OEM кодировку а оставались в ANSI ?
Заранее спасибо :)

gora
24-10-2008, 16:27
Как сделать »Добавить перед этой строкой эту: chcp 1251




© OSzone.net 2001-2012