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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Elroir



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

Код:
 
@echo off
setlocal
set /p message=<message.txt
for /f "tokens=*" %%a in (comps.txt) do call :ping_send "%%a"
goto :EOF
:ping_send
ping %~1 | find /i "TTL=">nul
if not errorlevel 1 (net send %~1 %message%)
 

message.txt - файл с сообщением одной строкой
comps.txt - файл со списком компов, каждое имя на новой строке


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:01 13-04-2008
JI063uk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чёто не получяеться??? Я думаю может проблема во второй строке (setlocal) - а если у меня домен? Выходит чёрное окошко говорит что ошибка при передачи сообщения на комп. Общая ошибка сети... А на мой собственый комп пришло и еще пробелы в конце каждой строчки нужны?

Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 16:19 13-04-2008 | Исправлено: JI063uk, 16:21 13-04-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JI063uk
Пробелы в конце строчек не нужны.
Ты проверял, работает ли net send с другими компьютерами из списка (запустив руками)?

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:59 13-04-2008
sk754800



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

Код:
rar e -u -tn12d E:\In\Dl\Cons_Upd\???????*.rar *.ans D:\Law\Veda5\RECEIVE\  

извлекает свежие обновления из архивов. Но выявилось, что иногда попадаются и дефектные архивы.
 
Прошу подсказать, как дополнить батник, чтобы при выявлении ошибок сообщения об
ошибках записывались в текстовый файл вида "Error_<date>.txt", желательно с указанием в текстовом файле даты и времени получения ошибок, но без сохранения промежуточных сообщений архиватора.  
 
Самостоятельные эксперименты с ключем -ilog  не удались...
 

 
---
Sk754800

Всего записей: 90 | Зарегистр. 06-11-2006 | Отправлено: 19:30 13-04-2008
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rastaguy
2. для w2k/xp/ "md %USERNAME%"
 
Добавлено:
01MDM
подскажи плиз как можно по команде "sc query | find "SERVICE_NAME:"" получить список
и по этому списку пройтись?
for /f "tokens=2,3* delims=: " %%i in ('sc qc %1 ^| findstr "SERVICE_NAME START_TYPE"') do (
    echo %%i %%j
)

Всего записей: 1498 | Зарегистр. 07-09-2004 | Отправлено: 08:22 14-04-2008
01MDM



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

Код:
 
@echo off
for /f "tokens=2 delims=: " %%i in ('sc query ^| findstr "SERVICE_NAME"') do (
    set name=%%i    
    for /f "tokens=2,3* delims=: " %%i in ('sc qc %%i ^| findstr "START_TYPE"') do (
        set "starttype=%%i %%j"
    )
    call:report
)
goto:eof
:report
echo %name%: %starttype%
 
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:18 14-04-2008 | Исправлено: 01MDM, 10:13 14-04-2008
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
спасибо то что нужно
вот еще одна проблема что то не получается, хочу сделать так
for /f "tokens=2 delims=: " %%i in ('sc query state= all ^| findstr "SERVICE_NAME"') do (
только он ни как не хочет понимать команду "sc query state= all", если сделать "sc query" то все нормально.
в чем может быть проблема?

Всего записей: 1498 | Зарегистр. 07-09-2004 | Отправлено: 15:28 14-04-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tolyn77
 
Слегка изменил, т.к не выводились службы с названиями из нескольких слов (O&O Defrag например)

Код:
 
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2,3 delims=: " %%i in ('sc query state^= all ^| findstr "SERVICE_NAME"') do (
    set "name=%%i %%j"    
    for /f "tokens=2,3* delims=: " %%i in ('sc qc "!name!" ^| findstr "START_TYPE"') do (
        set "starttype=%%i %%j"
    )
    echo !name!:    !starttype!
)
 
 

 
Можешь так же изменить "echo !name!:" на "echo !name: =!:", что бы убить лишние пробелы  
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:20 14-04-2008 | Исправлено: 01MDM, 18:24 14-04-2008
JI063uk



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

Цитата:
Пробелы в конце строчек не нужны.  
Ты проверял, работает ли net send с другими компьютерами из списка (запустив руками)?

Все батник заработал была отключина служба. Тока приходят каракули если писать на русском подскажи как вылечить это.... Если отправлять вручную через консоль на руском то нормально каракуль нет

Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 18:51 14-04-2008 | Исправлено: JI063uk, 19:24 14-04-2008
Elroir



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

Цитата:
Все батник заработал была отключина служба. Тока приходят каракули если писать на русском подскажи как вылечить это....  


Код:
 
@echo off
chcp 1251>nul
setlocal
set /p message=<message.txt
for /f "tokens=*" %%a in (comps.txt) do call :ping_send "%%a"
goto :EOF
:ping_send
ping %~1 | find /i "TTL=">nul
if not errorlevel 1 (net send %~1 %message%)
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:04 15-04-2008
JI063uk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Работает! Спасибо. А что именно дают цифры 1251

Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 05:03 15-04-2008
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JI063uk

Цитата:
А что именно дают цифры 1251  

Это кодовая страница кириллицы.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 05:08 15-04-2008
JI063uk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поняино а как сделать чтобы мой батник не закрывался сразу после того как сделает свою задачю, а дал мне посмотреть результат своей работы???

Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 05:21 15-04-2008
D555



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз батничек для XP.., такой:
 
1.разьединить инет соединение
2.пауза 30 сек.
3.соединить инет соединение(из сет.подключений)
ps        1. и 3. нашёл..., со 2. пунктом проблемы
 
И извиняюсь за ламерский вопрос, а чем .cmd от .bat отличаются?
 
Заранее спасибо ответившим !


----------
Проголосуй за разделение раздела "Игры и Фильмы" здесь !!!

Всего записей: 375 | Зарегистр. 17-04-2003 | Отправлено: 06:56 15-04-2008 | Исправлено: D555, 07:38 15-04-2008
Le9i0nX

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

Цитата:
Поняино а как сделать чтобы мой батник не закрывался сразу после того как сделает свою задачю, а дал мне посмотреть результат своей работы???

 
В конце добавь строчку без ковычек "PAUSE"
 
Добавлено:
D555

Цитата:
 
И извиняюсь за ламерский вопрос, а чем .cmd от .bat отличаются?  
 

Отличается типом а посуте всё это текстовики просто .bat для Win95,98,me а .cmd для WinNT4,nt5(2000),XP хотя .bat запускается в обоих ветках ОС.

Всего записей: 14 | Зарегистр. 19-09-2007 | Отправлено: 08:57 15-04-2008
tolyn77



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D555
ping -n 30 127.0.0.1

Всего записей: 1498 | Зарегистр. 07-09-2004 | Отправлено: 10:49 15-04-2008 | Исправлено: tolyn77, 11:55 15-04-2008
XXXXL



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

Код:
@echo off  
rasdial "имя соединения" /disconnect  
sleep.exe 3
rasdial "имя соединения" "логин" "пароль"  

 
"имя соединения" - название твоего соединения
"логин" - твой логин
sleep.exe 3 пауза 3 сек (можешь сделать сколько тебе нужно)
"пароль" - твой пароль
 
sleep.exe тут http://filesurf.ru/36119/sleep.exe.html
или тут зеркало http://dump.ru/files/p/p2832042839/

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 13:57 15-04-2008
LeshiyAlex

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте гуру командной строки!
 
Вот есть у меня мысль, но чото как то реализации не поддается, может кто подскажет?
 
Есть несколько файлов - попадают в папку ZAPROS с определенным именем и постоянно разным расширением. Нахожу файл в этой папке загоняю в переменную %F_F%
 
SET FILES=NO
CD %FPATH%\ZAPROS
@for %%f in (*.*) do SET FILES=YES
@IF "%FILES%"=="NO" GOTO end
for %%A in (*.*) do SET F_F=%%A
@ECHO Найден файл %F_F%
 
Дальше - в этом файле из набора текста (разное кол-во строк) есть кодовое слово KOMBANK
за ним в следующих строках может быть как одна так и несколько отделенные пробелами с начала строки имя файла, с другой строки тоже имя файла, в основном с расширением .ARJ но опять же невсегда. И далее снова пустые строки из пробелов.
 
Как описать батником - нахождение строки KOMBANK и затем взять после этой строки все строки содержащие имена файлов и построить из них список в файле KOMBANK.TXT
 
Помогите, а то уже всю голову себе сломал

Всего записей: 7 | Зарегистр. 30-06-2006 | Отправлено: 15:02 15-04-2008
Elroir



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

Цитата:
Дальше - в этом файле из набора текста (разное кол-во строк) есть кодовое слово KOMBANK  
за ним в следующих строках может быть как одна так и несколько отделенные пробелами с начала строки имя файла, с другой строки тоже имя файла, в основном с расширением .ARJ но опять же невсегда. И далее снова пустые строки из пробелов.

Приведи пример этого файла

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:37 15-04-2008
Nicka_Grey

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

Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 19:00 15-04-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