Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

   

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 4
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

Всего записей: 11426 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Yuki2003



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли получив дату (%date%) вернуть ее "за минусом" одного дня?
Например при %date% = 09.04.2007 получить 08.04.2007, то есть типа SET d = %date% минус 1 день...

Всего записей: 1077 | Зарегистр. 10-07-2003 | Отправлено: 16:02 09-04-2007
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Yuki2003
тынц

Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 16:12 09-04-2007
Yuki2003



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
10x

Всего записей: 1077 | Зарегистр. 10-07-2003 | Отправлено: 16:58 09-04-2007
chp666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребята, как написать батник. Чтоб он добавлял адреса в файл HOSTS. Не заменял а именно добавлял в список. Помогите пожалуйста, что-то не получается найти подобное.

Всего записей: 82 | Зарегистр. 26-01-2006 | Отправлено: 18:48 09-04-2007
magazinus



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chp666
Используй >>, вместо >, тогда не будет заменять, а будет добавлять.

----------
Не был. Не состоял. Не привлекался.

Всего записей: 1364 | Зарегистр. 14-01-2007 | Отправлено: 18:51 09-04-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 

Первым параметром передается IP адрес, вторым имя хоста. Например:
addhost.cmd 66.249.93.99 www.google.com

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:08 09-04-2007
chp666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
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 не изменился.
 
 

Всего записей: 82 | Зарегистр. 26-01-2006 | Отправлено: 20:10 09-04-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chp666
Ты не то делаешь
Внутри батника ничего не надо менять - так как я написал, так и скопируй и сохрани под именем addhost.cmd. А запускать надо так - в командной строке пишешь:

Код:
 
addhost.cmd 192.168.0.1  l2testauthd.lineage2.com
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:50 09-04-2007
chp666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir
Огромное спасибо тебе, долго бы я гадал. Мало что про них знаю.  
Последний вопросик. Я сделал ещё батник для запуска, чтоб в командной строке не прописывать.  

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

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

Всего записей: 82 | Зарегистр. 26-01-2006 | Отправлено: 22:12 09-04-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chp666

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

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

Код:
 
attrib -r %windir%\system32\drivers\etc\hosts
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:45 09-04-2007
chp666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
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
 

Но добавляется только первый адрес, что нужно поправить в этом батнике? Ну и на последок, что нужно поменять в addhost.cmd чтоб он не добавлял, а удалял заданные адреса.
 
P. S. Уже не удобно писать., но спросить не у кого. Если вы не подскажите, то скорей всего ни кто.

Всего записей: 82 | Зарегистр. 26-01-2006 | Отправлено: 05:38 10-04-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 


Цитата:
Ну и на последок, что нужно поменять в addhost.cmd чтоб он не добавлял, а удалял заданные адреса.

Поменять что-либо для этого будет затруднительно. Нужен другой батник:

Код:
 
@echo off
if "%1"=="" goto :EOF
attrib -r %windir%\system32\drivers\etc\hosts
del /q %windir%\system32\drivers\etc\newhosts 2>nul
del /q %windir%\system32\drivers\etc\hosts.bak 2>nul
copy %windir%\system32\drivers\etc\hosts %windir%\system32\drivers\etc\hosts.bak
if "%2"=="" goto delbyip
for /f "tokens=1,2*" %%a in (%windir%\system32\drivers\etc\hosts) do (
if not "%%a"=="%1" (echo %%a %%b %%c>>%windir%\system32\drivers\etc\newhosts) else (
if not "%%b"=="%2" (echo %%a %%b %%c>>%windir%\system32\drivers\etc\newhosts)))
goto work
:delbyip
for /f "tokens=1,2*" %%a in (%windir%\system32\drivers\etc\hosts) do (
if not "%%a"=="%1" echo %%a %%b %%c>>%windir%\system32\drivers\etc\newhosts)
:work
del /q %windir%\system32\drivers\etc\hosts 2>nul
ren %windir%\system32\drivers\etc\newhosts hosts
 

Его надо сохранить под именем delhost.cmd. Если ему передается один параметр - IP адрес, то сотрутся все строчки с этим адресом. Если же передается адрес и имя хоста - сотрется только строчка, содержащая эти значения. Пример:
1. Нужно удалить все строчки с адресом 192.168.0.1

Код:
delhost 192.168.0.1

2. Нужно удалить все строчку с адресом 192.168.0.1 и именем l2authd.lineage2.com

Код:
delhost 192.168.0.1 l2authd.lineage2.com

Опять же - если запускать из другого батника, нужно воспользоваться командой call.
Так как из командной строки нельзя редактировать файлы - в процессе работы delhost.cmd, создается новый файл newhosts с нужными строчками, удаляется оригинальный файл hosts и после этого newhosts переименовывается в hosts. Поэтому на всякий случай создается копия файла hosts, с именем hosts.bak.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 08:17 10-04-2007
chp666



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо огромное! Очень хорошо что есть данный форум и такие люди.

Всего записей: 82 | Зарегистр. 26-01-2006 | Отправлено: 08:31 10-04-2007
ZloyBehemoth



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажeте - можно ли из комстроки получить значение параметра в реестре windows?

Всего записей: 242 | Зарегистр. 12-10-2004 | Отправлено: 11:02 10-04-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZloyBehemoth
Можно - посмотри команду reg query /?

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:04 10-04-2007
ZloyBehemoth



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir

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

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

Всего записей: 242 | Зарегистр. 12-10-2004 | Отправлено: 13:30 10-04-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZloyBehemoth

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

Пролет . Эта утилита, действительно, в Win2000 не живет - только в XP/2003.
Но она должна быть в Resource Kit-е.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:34 10-04-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ZloyBehemoth
Elroir
А если её скопировать с ХР на 2000?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:48 10-04-2007
ZloyBehemoth



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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"=
 
Т.е. из реестра нужно взять значение и записать его в файл в нужном месте. Можно ли это как нибудь сделать из комстроки?

Всего записей: 242 | Зарегистр. 12-10-2004 | Отправлено: 14:54 10-04-2007
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ZloyBehemoth
Можно обойтись обычным RegEdit-ом
1. Экспорт нужной ветки в файл
2. Разбор его по FOR /F с разделителем = в итоге получим Ключ (Default User ID) и значение
3. Потом через Echo создаем .reg и импортируем его
 
ЗЫ. Сейчас нет времени написать сам батничек

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:04 10-04-2007
   

Страницы: 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru