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

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

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

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
XXXXL



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

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 22:40 25-10-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи! Помогите! Как в батнике задать вопрос пользователю с вариантами ответа и, в зависимости от ответа выполнять один из вариантов развития?
Заранее спасибо!  
П.С. Win 2003

Всего записей: 12 | Зарегистр. 10-04-2008 | Отправлено: 19:11 29-10-2008
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И снова Я с вопросом!
Есть файл LAST_REC.TXT (такого содержания):
 
REXP016,Алтайский край ,1152,1152,27.10.2008,=HOST
REXP067,Тульская область ,2604,2604,28.10.2008,=HOST
REXP086,Ярославская область ,10170,10170,21.10.2008,=HOST
REXP096,Республика Коми ,1160,1160,27.10.2008,=HOST
REXP098,Чувашская Республика ,2487,2307,27.10.2008,#HOST
REXP127,Орловская область ,1114,1114,28.10.2008,=HOST
REXP140,Республика Башкортостан ,12108,12108,27.10.2008,=HOST
REXP154,Новгородская область ,2191,2191,25.10.2008,=HOST
REXP180,Волгоградская область ,5080,5076,25.10.2008,#HOST
REXP358,Саратовская область ,4944,4944,25.10.2008,=HOST
REXP368,Пермский край ,2629,2629,25.10.2008,=HOST
REXP926,Ханты-Мансийский автономный округ ,8480,8480,27.10.2008,=HOST
 
Кол-во строк может быть разное (до 120), но структура строки неизменна!
 
Нужно отсортировать все строки и найти только те в которых значение "#HOST", т.е. из образца должно остаться:
 
REXP098,Чувашская Республика ,2487,2307,27.10.2008,#HOST
REXP180,Волгоградская область ,5080,5076,25.10.2008,#HOST
 
А потом ещё раз остсортировать, до такого:
 
REXP098
REXP180
 
И этот список передать в текстовый файл BASELIST.CFG
 
Подскажите возможно-ли сделать так, с помощью батника ?

Всего записей: 1461 | Зарегистр. 28-10-2007 | Отправлено: 01:29 30-10-2008
01MDM



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

Код:
 
@echo off
for /f "tokens=*" %%i in ('findstr #HOST last_rec.txt') do (
    for /f "tokens=1 delims=," %%i in ("%%i") do echo %%i 1>>baselist.cfg
)
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 05:55 30-10-2008 | Исправлено: 01MDM, 06:49 30-10-2008
zzxx1488

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
день добрый  
интересует какими ср-вами можно получить дефолт гейт, который на данный момент используется  
дело в том что у меня помимо лана еще 3 подключения к впн и все время гейты разные, т.е. route print выдает  
0.0.0.0 0.0.0.0 10.16.0.25  
0.0.0.0 0.0.0.0 192.168.56.1  
0.0.0.0 0.0.0.0 171.16.31.14  
 
также затрудняет ситуацию, что винда в разных местах на разных языках, т.е. англ,рус,нем и я пытался одно время сделать батник ищущий слово default gateway в ответе route print и соотв-но потом копирующий значение, но на нем и рус виндах это не прокатило  
 
соот-но вопрос, как можно получить текущий гейт который исп-ся на данный момент

Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 14:56 30-10-2008 | Исправлено: zzxx1488, 14:57 30-10-2008
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
В очередной раз БОЛЬШОЕ СПАСИБО !!!
 
А можно ещё немного усложнить задачу ?
из такого списка возможно такая-же операция
 
441,1,3000.03.43.9454,RAPS002,2985,2985,2985,2985,2985,0,=HOST,30.10.2008,10.10,29.10.2008,23.10.2008,21.10.2008,30.10.2008,10.10,R,17.10.2008,"2 апелляционный суд",2985,2985,2985,2934,30.10.2008,29.10.2008,23.10.2008,21.10.2008
 
441,1,3000.03.43.9454,RAPS003,2658,2658,2658,2658,2658,0,#HOST,30.10.2008,10.10,29.10.2008,23.10.2008,21.10.2008,30.10.2008,10.10,R,17.10.2008,"3 апелляционный суд",2658,2658,2658,2604,30.10.2008,29.10.2008,23.10.2008,21.10.2008
 
441,1,3000.03.43.9454,RAPS007,1400,1400,1400,1400,1400,0,=HOST,30.10.2008,10.10,29.10.2008,23.10.2008,21.10.2008,30.10.2008,10.10,R,17.10.2008,"7 апелляционный суд",1400,1400,1400,1350,30.10.2008,29.10.2008,23.10.2008,21.10.2008
 
441,1,3000.03.43.9454,RAPS013,23808,23808,23808,23808,23808,0,#HOST,30.10.2008,10.10,29.10.2008,23.10.2008,18.10.2008,30.10.2008,10.10,R,17.10.2008,"13 апелляционный суд",23808,23808,23808,23550,30.10.2008,29.10.2008,23.10.2008,18.10.2008
 
441,1,3000.03.43.9454,RAPS014,0,0,0,0,0,0,?HOST,30.10.2008,10.10,29.10.2008,23.10.2008,10.10.2008,30.10.2008,10.10,R,17.10.2008,"14 апелляционный суд",0,0,0,0,30.10.2008,29.10.2008,23.10.2008,10.10.2008
 
 
чтобы в итоге
 
RAPS013
RAPS003

Всего записей: 1461 | Зарегистр. 28-10-2007 | Отправлено: 15:02 30-10-2008 | Исправлено: vitrzn, 15:04 30-10-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vitrzn
Можно, поменяй только одну цифру

Код:
 
@echo off
for /f "tokens=*" %%i in ('findstr #HOST last_rec.txt') do (
    for /f "tokens=4 delims=," %%i in ("%%i") do echo %%i 1>>baselist.cfg
)  
 

 
 
Добавлено:
zzxx1488

Цитата:
соот-но вопрос, как можно получить текущий гейт который исп-ся на данный момент

 
Можно через `ipconfig`, но он локализован. Попробуй `netsh`:

Код:
 
@echo off
for /f "tokens=3" %%i in ('netsh diag show gateway ^| findstr DefaultIPGateway') do (
       set dgway=%%i
)
echo %dgway%
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:24 30-10-2008
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zzxx1488
Еще вариант:
Код:
@echo off
FOR /F "skip=3 tokens=8" %%i IN ('tracert -d -h 1 ya.ru') DO echo %%i
Сработает только если дефолтовый шлюз фунциклирует как положено.

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 17:00 30-10-2008 | Исправлено: mozers, 17:05 30-10-2008
ham7et

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
добрый день
есть один проблем:
один батник вызывает другой и передает ему в качестве параметра имена файлов( по одному).
все работает до тех пор, пока в имени очередного файла не встретится символ %.
в результате "Файл не найден".
к примеру:
 
1.cmd:
 
 
@echo off
for /R %%i in (*.*) do call 2.cmd "%%i"
 
 
2.cmd:
 
echo %1
 
 
как ето поправить ? при условии что вложеные батники -обязательны.

Всего записей: 1 | Зарегистр. 30-10-2008 | Отправлено: 19:47 30-10-2008
01MDM



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

Код:
 
@echo off
for /r %%i in (*.*) do set "file=%%i" && call:2
goto:eof
 
:2
echo %file%
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:01 30-10-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сорри за повтор... Просто очень надо)) Как в батнике задать вопрос пользователю с вариантами ответа и, в зависимости от ответа выполнять один из вариантов развития?
Заранее спасибо!  
П.С. Win 2003

Всего записей: 12 | Зарегистр. 10-04-2008 | Отправлено: 01:41 31-10-2008
zzxx1488

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хм ни первый ни второй метод не пошли, tracert выдает не дефолтовый гейт, а видать какой то промежуточный сервер провайдера
tracert -d -h 1 ya.ru
Tracing route to ya.ru [213.180.204.8]
over a maximum of 1 hops:
  1     1 ms     1 ms     1 ms  24.16.42.0
Trace complete.
 
команда netsh diag show gateway  показывает:
Default Gateways
     1. [00000001] AMD PCI-E Fast Ethernet Controller
        DefaultIPGateway = 171.16.16.1 Same Subnet
     3. [00589827] WAN Miniport (IP)
        DefaultIPGateway = 192.168.154.1 Same Subnet
     4. [00000013] Intel Wireless Connection
        DefaultIPGateway = 10.xx.xx.xx Same Subnet
 
 
а мне нужен именно тот гейт который покажет route print в графе Default Gateway, на момент запуска скрипта/батника
(опять же повторюсь почему 'grep -i default gateway'  не катит, потому что винды разные на немецком, английском и русском языках)
 

Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 01:51 31-10-2008
01MDM



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

Цитата:
а мне нужен именно тот гейт который покажет route print в графе Default Gateway, на момент запуска скрипта/батника

 

Код:
 
@echo off
for /f "tokens=2 delims=:" %%i in ('route print') do set dgway=%%i
set dgway=%dgway: =%
echo %dgway%
 

 
 
 
Добавлено:
Learsi1948
 
Кажется в 2003 есть choice.exe
Для XP (будет работать и в 2003):

Код:
 
@echo off
 
echo 1. Choice 1
echo 2. Choice 2
echo 3. Choice 3
 
set choice=0
set /p choice="Choose 1, 2 or 3: "
 
if %choice%==1 goto:1
if %choice%==2 goto:2
if %choice%==3 goto:3
echo bad choice
goto:eof
 
:1
echo 1 && goto:eof
:2
echo 2 && goto:eof
:3
echo 3
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:37 31-10-2008 | Исправлено: 01MDM, 09:42 31-10-2008
GRom V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
подскажите ктонить воожу net share disk_c=c: > nul диск в сети появляется, но скопировать туда я ничего не могу - нет доступа

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 10:33 31-10-2008
Fef



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Кто может подсказать по решению задачи?
Есть множество  текстовых файлов с именем такого формата useryyyymmdd.txt
в котором строки формата ?????^????^??????^фамилия^имя^отчество
Нужно написать батник, который по дате в имени выбирает последний файл и проверяет соответствует ли содержимое шаблону ?????^????^??????^фамилия^имя^отчество

Всего записей: 2 | Зарегистр. 30-10-2008 | Отправлено: 11:22 31-10-2008
FuZZion

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочется с помощью bat файла решить следующую задачу. Создать такой батник, чтобы запуская на машине он делал следующее:
1. узнавал имя IP-интерфейса, менял его на, допустим, LAN
2. с помощью команды netsh устанавливал адрес интерфейса, маску и шлюз.
Возможно, чтобы брал информацию из текстовика - первый IP и маску, допустим, а затем с каждым последующим запуском на других машинах уменьшал IP-адрес соответственно записям в этом текстовике... Вот так... Я застрял на том, что не могу подставить имя интерфейса в name= в комманде netsh (Приходится его только ручками вводить).

Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 14:54 31-10-2008
Learsi1948

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо zzxx1488!! Заработало! Но возникла небольшая проблема:
в этом моменте из файла ip.txt должны передаваться айпишники и дальше прога должна их использовать
set server=192.168.%%p.1
md svedenija
for /f "eol=;" %%p in (ip.txt) do (
net use v: /delete
net use v: \\%server%\t$ /user: ¤¬Ё-Ёбва в®а ****** dir v:\ /a >> svedenija\man%%p.txt
pause
net use v: /delete)
 
так вот в айпишник переменная p не передается... Что не так?
Заранее спасибо!

Всего записей: 12 | Зарегистр. 10-04-2008 | Отправлено: 23:35 31-10-2008
vgiki

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, люди!  
Нужен батник который просто закрывает VPN соединение на компе.
Заранее благодарю=)

Всего записей: 13 | Зарегистр. 31-10-2008 | Отправлено: 23:37 31-10-2008
ShriEkeR



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vgiki
rasphone -h vpn_connection_name

----------
Absit invidia verbo

Всего записей: 6382 | Зарегистр. 27-09-2004 | Отправлено: 23:46 31-10-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vgiki
rasdial /?
 
На примере соединения с названием "beeline"

Код:
 
rasdial beeline /disconnect
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:51 31-10-2008
   

Страницы: 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru