Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: chp666
Дата сообщения: 09.04.2007 17:48
Ребята, как написать батник. Чтоб он добавлял адреса в файл HOSTS. Не заменял а именно добавлял в список. Помогите пожалуйста, что-то не получается найти подобное.
Автор: magazinus
Дата сообщения: 09.04.2007 17:51
chp666
Используй >>, вместо >, тогда не будет заменять, а будет добавлять.
Автор: Elroir
Дата сообщения: 09.04.2007 18:08
chp666

Код:
@echo off
if "%1"=="" goto help
if "%2"=="" goto help
echo %1 %2>>%windir%\system32\drivers\etc\hosts
goto :EOF
:help
echo Usage: addhost.cmd ip_address hostname
Автор: chp666
Дата сообщения: 09.04.2007 19:10
Elroir

Не получается что-то у меня, сделал батник:


Цитата:
@echo off
if "%1"=="" goto help
if "%2"=="" goto help
echo %1 %2>>%windir%\system32\drivers\etc\hosts
goto :EOF
:help
echo Usage: addhost.cmd 192.168.0.1 l2testauthd.lineage2.com


в командной строке вот что пишет:


Цитата:
C:\>hosts.bat
Usage: addhost.cmd 192.168.0.1 l2testauthd.lineage2.com


файл HOSTS не изменился.


Автор: Elroir
Дата сообщения: 09.04.2007 20:50
chp666
Ты не то делаешь
Внутри батника ничего не надо менять - так как я написал, так и скопируй и сохрани под именем addhost.cmd. А запускать надо так - в командной строке пишешь:

Код:
addhost.cmd 192.168.0.1 l2testauthd.lineage2.com
Автор: chp666
Дата сообщения: 09.04.2007 21:12
Elroir
Огромное спасибо тебе, долго бы я гадал. Мало что про них знаю.
Последний вопросик. Я сделал ещё батник для запуска, чтоб в командной строке не прописывать.

Цитата:
addhost.cmd 192.168.0.1 l2testauthd.lineage2.com

С начало адрес не хотел добавляться, потому что на файле hosts стояли атрибуты "только чтение". Нельзя ли сделать, чтоб в начале этот атрибут убирался? Может прописать что-нибудь в батнике который я создал? Нужно просто добиться максимальной автоматизации, не все могут залезть и отредактировать этот файл hosts.
Автор: Elroir
Дата сообщения: 09.04.2007 21:45
chp666

Цитата:
Нельзя ли сделать, чтоб в начале этот атрибут убирался?

Можно - в начало батника добавь строчку:

Код:
attrib -r %windir%\system32\drivers\etc\hosts
Автор: chp666
Дата сообщения: 10.04.2007 04:38
Elroir
Благодарю вас! Всё убирает, добавляет. Я вот только не понял, как можно добавить несколько адресов за раз, вписывал в батник следующие:

Код: attrib -r %windir%\system32\drivers\etc\hosts
addhost.cmd 192.168.0.1    l2testauthd.lineage2.com
addhost.cmd 192.168.0.1    l2authd.lineage2.com
addhost.cmd 192.168.0.1    nprotect.lineage2.com
Автор: Elroir
Дата сообщения: 10.04.2007 07:17
chp666

Цитата:
Но добавляется только первый адрес, что нужно поправить в этом батнике?

Перед каждым вызовом addhost.cmd, надо добавить команды call:

Код:
@echo off
attrib -r %windir%\system32\drivers\etc\hosts
call addhost.cmd 192.168.0.1 l2testauthd.lineage2.com
call addhost.cmd 192.168.0.1 l2authd.lineage2.com
call addhost.cmd 192.168.0.1 nprotect.lineage2.com
Автор: chp666
Дата сообщения: 10.04.2007 07:31
Спасибо огромное! Очень хорошо что есть данный форум и такие люди.
Автор: ZloyBehemoth
Дата сообщения: 10.04.2007 10:02
Не подскажeте - можно ли из комстроки получить значение параметра в реестре windows?
Автор: Elroir
Дата сообщения: 10.04.2007 10:04
ZloyBehemoth
Можно - посмотри команду reg query /?
Автор: ZloyBehemoth
Дата сообщения: 10.04.2007 12:30
Elroir

Цитата:
Можно - посмотри команду reg query /?


А эта программа reg живет где? У меня в Win2000 такой вроде нет.
Автор: Elroir
Дата сообщения: 10.04.2007 13:34
ZloyBehemoth

Цитата:
А эта программа reg живет где? У меня в Win2000 такой вроде нет.

Пролет . Эта утилита, действительно, в Win2000 не живет - только в XP/2003.
Но она должна быть в Resource Kit-е.
Автор: KapralBel
Дата сообщения: 10.04.2007 13:48
ZloyBehemoth
Elroir
А если её скопировать с ХР на 2000?
Автор: ZloyBehemoth
Дата сообщения: 10.04.2007 13:54
Elroir


Цитата:
Но она должна быть в Resource Kit-е.


Хорошо. Погляжу в ките.

Вообще, это только пол-дела. Все обстоит так: есть параметры, которые надо записать в реестр, конкретно это настройки Outlook Express. Делать это нужно для каждого пользователя, пример внизу:

[HKEY_CURRENT_USER\Identities\{FA37FAAF-61F2-4A95-8C1E-613E0A4A1084}\Software\Microsoft\Outlook Express\5.0]
;при запуске открывать входящие
"Launch Inbox"=dword:00000001

Проблема в том, что вместо значения {FA37FAAF-61F2-4A95-8C1E-613E0A4A1084} в этот рег-файл нужно вписывать значение ИД текущего пользователя, которое находится по адресу:

[HKEY_CURRENT_USER\Identities]
"Default User ID"=

Т.е. из реестра нужно взять значение и записать его в файл в нужном месте. Можно ли это как нибудь сделать из комстроки?
Автор: KapralBel
Дата сообщения: 10.04.2007 14:04
ZloyBehemoth
Можно обойтись обычным RegEdit-ом
1. Экспорт нужной ветки в файл
2. Разбор его по FOR /F с разделителем = в итоге получим Ключ (Default User ID) и значение
3. Потом через Echo создаем .reg и импортируем его

ЗЫ. Сейчас нет времени написать сам батничек
Автор: ZloyBehemoth
Дата сообщения: 10.04.2007 14:47
KapralBel

Я в принципе уже сам начал понимать, но вот что неясно - как из файла со строками
-------------------------------------
! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Identities
Default User ID    REG_SZ    {D6E87B2F-2EE7-4523-8EAC-DEFE7C37442F}
-------------------------------------
Сформировать строку вида:
[HKEY_CURRENT_USER\Identities\{D6E87B2F-2EE7-4523-8EAC-DEFE7C37442F}\Software\Microsoft\Outlook Express\5.0

которую уже дальше вставлять в конечный файл по echo?
Автор: Widok
Дата сообщения: 10.04.2007 14:59
шапка включена
Автор: KapralBel
Дата сообщения: 10.04.2007 15:04
ZloyBehemoth
А если так
regedit /ea r.reg HKEY_CURRENT_USER\Identities

Код: REGEDIT4

[HKEY_CURRENT_USER\Identities]
"Identity Ordinal"=dword:00000002
"Migrated5"=dword:00000001
"Last Username"="Основное удостоверение"
"Last User ID"="{F8D83A84-188F-404B-B645-0BC3B4035EA4}"
"Default User ID"="{F8D83A84-188F-404B-B645-0BC3B4035EA4}"
"Identity Login"=dword:00098053
Автор: Elroir
Дата сообщения: 10.04.2007 15:04
ZloyBehemoth

Код:
setlocal
for /f "tokens=5" %%a in (identity.reg) do set id=%%a
echo [HKEY_CURRENT_USER\Identities\%id%\Software\Microsoft\Outlook Express\5.0]>>importid.reg
Автор: igor_andreev
Дата сообщения: 10.04.2007 15:05
ZloyBehemoth

Цитата:
Хорошо. Погляжу в ките.

Не смотри в ките, у той reg.exe синтаксис другой. Бери из XP.

Цитата:
Проблема в том, что вместо значения {FA37FAAF-61F2-4A95-8C1E-613E0A4A1084} в этот рег-файл нужно вписывать значение ИД текущего пользователя,


Код:
FOR /F "TOKENS=5" %%a IN ('REG QUERY "HKCU\Identities" /v "Default User ID"') DO SET "USER_ID=%%a"
Автор: Elroir
Дата сообщения: 10.04.2007 15:10
KapralBel
igor_andreev
Какие мы все быстрые


Цитата:
шапка включена

Не поверите - только сегодня подумал, что теме не мешало бы шапку включить!
Автор: KapralBel
Дата сообщения: 10.04.2007 15:19
igor_andreev
Elroir
Ну что шапку будем создавать заново или передерем с параллельного топика?
Автор: igor_andreev
Дата сообщения: 10.04.2007 15:30
KapralBel

Цитата:
Ну что шапку будем создавать заново или передерем с параллельного топика?

Их вообще можно совместить, потому как задачи в них решаются практически одинаковые - батники. Или этот закрыть, и все батники решать в Программах.

Кстати, этот топик и "Задачи на bat-файлах" представляют собой несомненный интерес для маркетологов Для меня всегда было загадкой, почему этот топик существует с 2002 года, название у него очень характерное(Командная строка, батники\сценарии (bat, cmd)), а вопросов в нем всего на 50 с небольшим страниц.
В то время как такой же топик "Задачи на bat-файлах", созданный в ноябре 2005 сразу стал дико популярен и скоро до 200 страниц дойдет.
Автор: KapralBel
Дата сообщения: 10.04.2007 15:47
igor_andreev
неверное позиционирование продукта
Все параллельный находится более правильно в Винде
Автор: Elroir
Дата сообщения: 10.04.2007 16:09
KapralBel
Передерем!
Максимум - всегда можно ее изменить. Правда как-то не патриотично () все ссылки на решенные задачи, из другого топика давать. Надо только общую ссылку на "Задачи на bat-файлах" и "Полезные ссылки", а потом уже добавлять потихоньку.

igor_andreev

Цитата:
Для меня всегда было загадкой, почему этот топик существует с 2002 года, название у него очень характерное(Командная строка, батники\сценарии (bat, cmd)), а вопросов в нем всего на 50 с небольшим страниц.

В том-то и дело -
Цитата:
неверное позиционирование продукта

С такими вопросами, люди скорее в "Операционные системы" идут.
Автор: KapralBel
Дата сообщения: 10.04.2007 16:22
Elroir

Цитата:
Правда как-то не патриотично () все ссылки на решенные задачи, из другого топика давать

Ага сами у себя украли


Цитата:
Надо только общую ссылку на "Задачи на bat-файлах" и "Полезные ссылки", а потом уже добавлять потихоньку.

Согласен

ЗЫ. Мое мнение - эти 2 топика объединить
или создать подфорум - программирование на скриптах
Батнички, WSH, powershell и т.д.
Автор: Elroir
Дата сообщения: 10.04.2007 16:35
KapralBel

Цитата:
Мое мнение - эти 2 топика объединить

Это как? Перенести все здешние страницы в "Задачи на bat-файлах"?

Цитата:
или создать подфорум

Люди не найдут - так эти темы хотя-бы в "Microsoft Windows" на виду...

P.S. Сделал шапку (передрал )
Автор: igor_andreev
Дата сообщения: 10.04.2007 16:37

Цитата:
или создать подфорум - программирование на скриптах
Батнички, WSH, powershell и т.д.

Во, полностью согласен! Логично бы было, еслиб все скриптовые языки в одном месте были.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.