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

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

Модерирует : KLASS, IFkO

vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hacsoft

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи на bat-файлах
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Набор GNU утилит для win32
· Встроенный справочник по командам: hh ntcmds.chm
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
 
Готовые решения и частые вопросы:
· Создание листинга директорий на примере создания плейлиста
· Разименовывание переменных
· Переименовывание файлов по дате создания
· Запуск сетевого подключения
· Запуск bat файлов как сервис
· Пример выполнения команд по результату команды ping
· Использование даты на день раньше чем сегодня
 
Невозможности — что нельзя сделать с помощью командных файлов:
· изменть конфигурацию IP на удаленной машине (без помощи rcmd.exe) [добавил ALEF]
 
 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Старая версия первого сообщения

Всего записей: 116 | Зарегистр. 18-11-2005 | Отправлено: 22:58 18-11-2005 | Исправлено: Elroir, 05:50 11-11-2006
MasterTheMAC



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

Цитата:
Type empty >>tmp1.ini

 
Вместо этого можно написать echo. >>tmp1.ini, тогда никакого лишнего файла не надо.

Всего записей: 87 | Зарегистр. 17-10-2003 | Отправлено: 18:08 13-01-2006 | Исправлено: MasterTheMAC, 18:09 13-01-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MasterTheMAC
Сенькаю - "век живи - век учись"
Я всегда делал echo . >> - и оно вставляла точку, если же нет проблелп между точкой и это - вставляет пустую строку

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:19 13-01-2006
asup

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis  
 
 
 
Цитата:Но у меня не получается выти из зацикливания после %0, притом задачи выполняются непоследовательно а зацикливаются все задачи.....у меня открылось за пару секунд по 50 окон каждой задачи, мне нужна помощь, как это грамотно реализовать??????????    
 
Попробуй использовать, например, переменные.  
 
Код:  
@echo off  
if "level"=="1"  goto second  
:: здесь первая часть  
set level=1  
"%0"  
 
:second  
:: здесь вторая часть  
 
exit  
 
Идёт выполнение до сих пор......
@echo off  
if "level"=="1"  goto second  
:: здесь первая часть  
set level=1  
 
 а потом зацикливается """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" и вторую часть не выполняет?
 
Smitis  в чём может быть ошибка?
   

Всего записей: 4 | Зарегистр. 25-12-2005 | Отправлено: 22:43 13-01-2006
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
asup
Надо символы % вокруг переменной:
if "%level%"=="1"  goto second  
Извини, это у меня была оЧеПятка  

Всего записей: 3177 | Зарегистр. 09-02-2003 | Отправлено: 15:15 15-01-2006
Zueuk

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

Цитата:
Zueuk  
по поводу циклов. где-то читал (дословно не помню, но суть вот такая) что при нахождении цикла вместо переменных в циклах значение подставляется ОДИН раз перед началом первого исполнения цикла (исключения составляют родные "цикличные" переменные тип %%i).  
 
Код:set Counter=0  
  FOR /F %%i IN ('dir /b /a-d /on D:\temp\*.txt') DO (  
echo %%i    
Set /a %%Counter=%Counter%+1 )  
echo %%Counter%  
 
в трансляции будет иметь вид  
 
Код:set Counter=0  
  FOR /F %%i IN ('dir /b /a-d /on D:\temp\*.txt') DO (  
echo D:\temp\.......txt    
Set /a %%Counter=0+1 )  
echo 1  
 
для приведения в нормальный вид этого кода надо запустить cmd /v:on  
и код подправить на  
 
Код:set Counter=0  
  FOR /F %%i IN ('dir /b /a-d /on D:\temp\*.txt') DO (  
echo %%i    
Set /a Counter=!Counter!+1 )  
echo %Counter%  
 
по крайней мере у меня в cmd /v:on  
работает  
 
Код:set count=0  
for /l %%i in (5,-1,1) do (  
echo %%i  
set /a count=!count!+%%i  
)  
echo %count%  
и выдает результат "15"  
в справке немного написано про режим расширения  
PS:у меня winxp на win 2000 тож работает

 
Спасибо. Это пригодится.

Всего записей: 58 | Зарегистр. 15-08-2003 | Отправлено: 10:49 16-01-2006
nat13ya

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветик. Кто-нубудь знает, можно ли в батнике прописать временную задержку в несколько секунд. Через команду Schtasks, если я правильно поняла, можно задать наименьший интервал – минута. Но это много. Или такую штуку можно сделать в скрипте.vbs.  
Спасибо.

Всего записей: 1 | Зарегистр. 18-01-2006 | Отправлено: 18:51 18-01-2006
MasterTheMAC



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nat13ya
 
Работает в win2000 и выше.  Зависит от формата времени в системе.
nSeconds - сколько секунд ждать (максимум 59).
 
set nCurrSeconds=%time:~6,2%
set /a nCheck=(nCurrSeconds+nSeconds)
if /i %nCheck% gtr 59 (set /a nCheck=nCheck-59)
:loop
if /i %time:~6,2% neq %nCheck% goto loop

Всего записей: 87 | Зарегистр. 17-10-2003 | Отправлено: 21:24 18-01-2006 | Исправлено: MasterTheMAC, 06:43 19-01-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nat13ya
можно еще использовать sleep или choice. не идут в стандартной поставке, но могу скинуть на e-mail (или если кто-нибудь объяснит как, то положить на этот сайт). еще проскакивали здесь где-то про варианты использования ping, но у меня не получалось через него сделать задержку.

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 08:46 19-01-2006
surgutfred



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Корифеи, подскажите. Вроде простая ситуевина, а копаться некогда.
Windows XP SP2
В FAR в командной строке набираю cd q: и перехожу на диск Q.
Пишу то же самое в bat файл и  нифига не переходит, там же в директории с батником и остался.
Как может по другому писать?

Всего записей: 589 | Зарегистр. 21-08-2001 | Отправлено: 09:45 19-01-2006
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
утилита  sleep  из  рескита  от w2k

Всего записей: 11719 | Зарегистр. 10-12-2003 | Отправлено: 09:45 19-01-2006
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
surgutfred
cd /d q:

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 09:53 19-01-2006
MasterTheMAC



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jak_forest, ipmanyak

Цитата:
не идут в стандартной поставке

В этом-то все и дело. Мы пытаемся в этой теме стандартным набором программ обойтись.

Всего записей: 87 | Зарегистр. 17-10-2003 | Отправлено: 10:12 19-01-2006
surgutfred



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
igor_andreev
cd /d q:  не спасло

Всего записей: 589 | Зарегистр. 21-08-2001 | Отправлено: 10:20 19-01-2006
KapralBel



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

Код:
 
C:
...
 

или

Код:
 
PushD C:
...
PopD
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:42 19-01-2006
dkuzmin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На удаленной машине запущена служба на 3300 порту.  
Как с Windows-системы с помощью скрипта (!) cmd bat определить доступность порта?  
Знаю что проверить надо через   telnet host 3300  
НО необходимо, чтобы после этой команды проверки выдавало сообщение, типа "Да, порт доступен" иначе "Нет, не доступен"  
Т.е. в итоге необходимо получить скрипт, при запуске которого выдается сообщение (или какой то признак), что порт на удаленном хосте доступен

Всего записей: 21 | Зарегистр. 21-09-2005 | Отправлено: 14:27 19-01-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dkuzmin
даже не надо telnet использовать
попробуй типа такого

Код:
 
C:\Documents and Settings\...>netstat | findstr /i "4899"
  TCP    uit-toasu-sa-01:2219   zp.nafta.priv:4899     ESTABLISHED
 

потом пробуй на переменную %errorlevel% отреагировать

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 17:22 19-01-2006
MasterTheMAC



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

Цитата:
На удаленной машине

 
При чем тут netstat?

Всего записей: 87 | Зарегистр. 17-10-2003 | Отправлено: 17:36 19-01-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MasterTheMAC
Упсссссс.
протупил. извиняюсь

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 17:43 19-01-2006
Strogg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, а как использовать коменду Тaskkill в зависимости от запущенного процесса?
Мне нужно в таком формате:
if exist (процесс такой-то) - taskkill убить процесс!

Всего записей: 841 | Зарегистр. 08-05-2003 | Отправлено: 00:31 20-01-2006
MasterTheMAC



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Strogg
 
Предположим, что ищем far.exe
 

Код:
tasklist|find /i "far.exe">nul & if errorlevel 1 (echo No such process!) else (taskkill /f /im far.exe /t)

Всего записей: 87 | Зарегистр. 17-10-2003 | Отправлено: 06:42 20-01-2006
   

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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах
vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru