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

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

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

Всего записей: 150 | Зарегистр. 22-06-2004 | Отправлено: 14:55 10-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Rost admin
А смысл какой расписывать в .бат файле
* найти файл
* найти его дату
* сравнить дату
* скопировать
 
Robocopy - идеальное решение для данного случая
Вставляешь в батник вызов этой утилиты с параметрами - и все ОК (сама обрабатывает ошибки)

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



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

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 15:16 10-03-2006
KapralBel



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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну батником нарисовать поиск нужных файлов, а xcopy сама вроде умеет файлы с более свежей датой распознавать

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 15:27 10-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MonsterMax
Ну тогда и обычную copy можно использовать
Скопируется в любом случае  
* если в зеркале был более старый файл - то станет новый, как и требовалось
* если же аналогичный - то скопируется по верху - ничего страшного

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
/D:m-d-y     Копирует файлы, измененные либо в указанный день, либо после.
              Если дата не указана, копируются только те файлы,
              которые новее в исходной папке.

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 15:40 10-03-2006
Rost admin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Так не пойдет т.к. лишний трафик не к чему

Всего записей: 150 | Зарегистр. 22-06-2004 | Отправлено: 15:57 10-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Rost admin
Тогда пользуйся решением MonsterMax или используй Robocopy

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:14 10-03-2006
nightlight

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

Цитата:
А если...  

Если надо не "в принципе" а просто работать, то ИМХО проще всего сделать так:
Положим имеется файл task.cmd.
Переименовываем его в old_task.cmd.
Пишем другой, из одной строчки:
 
old_task.cmd >> 1% 2>&1
 
Называем его task.cmd,  и используем  в виде:
task.cmd  stdout_and_error_file
 
Vitus_Bering

Цитата:
Как установить - понятно, а как узнать установлен ли определенный шрифт?  

 
Напрмер вот так:
@echo off
reg query "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\fonts\" /v  | findstr /c:"Courier New Bold Italic"
IF NOT ERRORLEVEL 1 ECHO  FONT IS INSTALL!  
 
 
 
 
 
Добавлено:
Rost admin
В cmd или bat файлах нормальная работа с датами черезвычайно затруднена, это общеизвестная истина...
Поэтому Ваш выбор или утилиты или Windows Script Host.

Всего записей: 112 | Зарегистр. 17-03-2004 | Отправлено: 23:04 10-03-2006 | Исправлено: nightlight, 23:18 10-03-2006
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nightlight, благодарю.

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 15:14 11-03-2006
xs

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите плиз.
Хочу написать бат-файл, который бы с определённой периодичностью пинговал один хост, и в случае отсутствия ответа подключался телнетом к адсл-маршрутизатору и выполнял некоторые команды.
Я пытался примерно так:
 
 echo off
ns
ping 195.54.2.1
if not errorlevel 0 goto end else goto reset / но даже при наличии ответа эта строка переводит почему-то к пункту «reset»
 
:reset
telnet 192.168.1.1  / здесь долго мучился и ничего путного не получилось
нужно сделать, чтобы отправлялся пароль на доступ в маршрутизатор
в телнете нужно выбрать пункт 24 (то есть <24 Enter>)
далее пункт 8 (то есть <8 Enter>)
затем открывается командная строка, где нужно набрать команду reset
выйти из телнета
goto end
 
:end  
timeout 180  / не воспринимает как команду
goto dns
 
хотя может такое и не возможно

Всего записей: 2 | Зарегистр. 11-03-2006 | Отправлено: 15:35 11-03-2006
nightlight

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xs
В Вашем случае выражение ( IF NOT ERRORLEVEL 0) истинно ложно всегда.  

Цитата:
IF ERRORLEVEL число
Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа .

 
 
Для организации задержки выполнения можно использовать либо утилиту sleep.exe из Windows 2000 or Windows XP Resource Kit, либо написать скрипт  для Windows Script Host. Написать скрипт и выполнить его можно  прямо из CMD файла  :
 
ECHO WScript.sleep(5000); > %temp%\sleep.js
cscript %temp%\sleep.js
IF EXIST %temp%\sleep.js DEL /Q %temp%\sleep.js
 
Время задержки указывается в милисекундах.
 
Один из вариантов как  автоматизировать работу с  telnet см. здесь
http://www.expansys.com.au/forumthread.asp?code=110551&thread=502

Всего записей: 112 | Зарегистр. 17-03-2004 | Отправлено: 20:47 11-03-2006 | Исправлено: nightlight, 21:52 11-03-2006
xs

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
большое спасибо...попробую...

Всего записей: 2 | Зарегистр. 11-03-2006 | Отправлено: 21:18 11-03-2006
zuzleg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не знаю спрашивалось уже или нет, но нельзя ли с помощью ком. строки создать ярлык к нужному файлу ?
 
И еще вопросик... Можно ли создать исполняемый пакет, чтобы он проверял нужную нам папку на наличие определенного файла, и, если этот файл не обнаружен, то запускать нужное нам приложение (ярлык) ? Соответственно, если этот файл будет найден, то запрещать запуск этого приложения.

Всего записей: 1 | Зарегистр. 13-03-2006 | Отправлено: 13:02 13-03-2006
nightlight

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

Цитата:
Не знаю спрашивалось уже или нет, но нельзя ли с помощью ком. строки создать ярлык к нужному файлу ?  
 

Скрыпт на VBS:
http://www.wincity.ru/index.php?showtopic=11858
 
 
 
Добавлено:

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

Так и называется оно:
IF EXIST file.txt
 
Подробности см.: IF /?
 
Разрешить/запретить исполнение файла можно например просто переименовывая его из file.exe в file.txt и обратно

Всего записей: 112 | Зарегистр. 17-03-2004 | Отправлено: 00:19 14-03-2006
igaraev



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно в цикле FOR задать параметр Delims равный какому то значению и пробелу.
 

Всего записей: 25 | Зарегистр. 09-03-2006 | Отправлено: 10:20 14-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
igaraev
For /F "tokens=1-6 delims= " %%a In (ReadMe.txt) Do Echo %%a
Если пробел, то delims пусть стоит последним и между = и кавычкой пробел

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:47 14-03-2006
igaraev



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

Такой еще вопрос назрел как в BAT файле узнать содержимое RAR архива.
И в зависимости от того что внутри выполять те или другие функции.

Всего записей: 25 | Зарегистр. 09-03-2006 | Отправлено: 10:58 14-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
igaraev
rar L Archive >ListOfFile.txt
а дальше разборка списка при помощи FOR

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:10 14-03-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