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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Refugee
Спасибо, так действительно лучше. Все работает.
Только я в T-SQL ноль абсолютный.
Как, например, вывести только последние 2 цифры года?
 
 
Elroir
echo %date%
Tue 10/17/2006
 
echo %time%
13:03:15.89
 
 
Добавлено:
Refugee
Нашел:
RIGHT(CONVERT(varchar,DATEPART(yy,@dt)),2)
 
Спасибо большое!

Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 21:05 17-10-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Yuk
Если не использовать T-SQL то так:

Код:
 
@echo off
echo backup database lims3 to disk='C:\TEMP\lims3_%date:~4,2%%date:~7,2%%date:~12,2%%time:~0,2%%time:~3,2%%time:~6,2%.dbk' > backup.txt
echo go >> backup.txt
echo exit >> backup.txt
 
osql -E -i backup.txt
 

 
Добавлено:
Третья строчка "time:~.." это продолжение второй - просто не поместилось в длину на странице форума.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:07 17-10-2006 | Исправлено: Elroir, 22:10 17-10-2006
Craager



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, а что нужно прописать в батнике, чтобы можно было осуществить проверку браузера, установленного по-умолчанию в системе... если это Internet Explorer, то скрипт выполняется дальше, а если другой (Мозила или Опера), то выполняется другой батник, прописывающий в реестр ниже приведённый текст:
 

Цитата:
 
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet]
@="IEXPLORE.EXE"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
  6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\gopher\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
  6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
  6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
  6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.htm]
@="htmlfile"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html]
@="htmlfile"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" %1"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open\ddeexec]
@="\"%1\",,-1,0,,,,"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open\ddeexec\Application]
@="IExplore"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\gopher\shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\gopher\shell\open\ddeexec]
@="\"%1\",,-1,0,,,,"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\gopher\shell\open\ddeexec\Application]
@="IExplore"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\gopher\shell\open\ddeexec\Application]
@="IExplore"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\open\ddeexec]
@="\"%1\",,-1,0,,,,"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\open\ddeexec\Application]
@="IExplore"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\ddeexec]
@="\"%1\",,-1,0,,,,"
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\ddeexec\Application]
@="IExplore"
 

 
После внесения этих данных, по идее браузер по-умолчанию меняется на ИЕ Часа 2 наверное эти ключи искал...

Всего записей: 373 | Зарегистр. 08-06-2006 | Отправлено: 22:35 17-10-2006 | Исправлено: Craager, 22:38 17-10-2006
Yuk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Спасибо, тоже вариант. Именно то, что я в начале задумывал.
Обязательно попробую.

Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 22:43 17-10-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PlanerX
WIndows - 2000????
 
Во всяком случае, очень похоже...
Более универсальный вариант (дата заканичвается на DD/MM/YYYY) увеличения даты

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 23:07 17-10-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Craager
Создай  файл ie_default.reg с теми значениями реестра которые ты привел или поменяй название reg файла в коде, если такой файл у тебя уже есть.

Код:
 
@echo off
reg query HKLM\SOFTWARE\Clients\StartMenuInternet /ve | find /I "iexplore" > nul
if errorlevel 1 regedit /s ie_default.reg
....
....
....
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:48 17-10-2006 | Исправлено: Elroir, 23:49 17-10-2006
Otvertish

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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir, спасибо огромное, вроде работает! Щас попробую на основе этой команды сделать проверку на установку видео проигрывателя по умолчанию...и в случае "неправды" устанавливать Crystal Player -)

Всего записей: 373 | Зарегистр. 08-06-2006 | Отправлено: 00:21 18-10-2006 | Исправлено: Craager, 00:24 18-10-2006
evle



1 + int rand(100);
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Otvertish

Цитата:
Я хотел бы узнать, есть ли команда, которая при запуске bat файла как бы скрывала его

Читаем шапку:

Цитата:
cmdow — изменение параметров и видимости дос-окна  



----------
For every complex problem, there is a solution that is simple, neat, and wrong.

Всего записей: 2110 | Зарегистр. 03-02-2005 | Отправлено: 06:58 18-10-2006
Snegov1k



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

Код:
 
@Echo Off  
set Counter=0    
FOR /F %%i IN ('dir /b /a-d /on Log\*.rar') DO Call :Count %%i  
echo %Counter%    
GoTo :EOF  
   
:Count  
echo %1  %counter%  
Set /a Counter=%Counter%+1    
GoTo :EOF  
 
 
Это для количества
 
А как сравнить с уже полученным и содержащимся внутри файла log.txt количеством?

Всего записей: 48 | Зарегистр. 12-10-2006 | Отправлено: 12:16 18-10-2006
locksmith



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи! Помогите написать батничек!
 
Как сделать чтобы при старте батника дата переводилась (например на 30 дней назад). Потом стартовала программа (все равно какая), и после этого дата переводилась снова на свое место.
 
Как это сделать?

Всего записей: 117 | Зарегистр. 11-06-2004 | Отправлено: 19:43 18-10-2006
denis255

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

Цитата:
Выложи сюда то, что выдает команда ipconfig

 
Настройка протокола IP для Windows
 
Подключение по локальной сети - Ethernet адаптер:
 
   DNS-суффикс этого подключения . . :  
 
   IP-адрес  . . . . . . . . . . . . : 192.168.0.1
 
   Маска подсети . . . . . . . . . . : 255.255.255.0
 
   Основной шлюз . . . . . . . . . . :  
 
 
ZyXEL ADSL Link - PPP адаптер:
 
 
 
   DNS-суффикс этого подключения . . :  
 
   IP-адрес  . . . . . . . . . . . . : x.x.x.x
 
   Маска подсети . . . . . . . . . . : 255.255.255.255
 
   Основной шлюз . . . . . . . . . . : 0.0.0.0

Всего записей: 424 | Зарегистр. 10-08-2004 | Отправлено: 22:11 18-10-2006
ViSiToR



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

Цитата:
как сравнить с уже полученным и содержащимся внутри файла log.txt количеством?

 
Примерно так:
 

Код:
For /f "delims=" %%a in (log.txt) do if /i %Counter%==%%a start "путь\к\winrar.exe"

 


----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:59 18-10-2006
Elroir



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

Код:
 
@echo off
for /F "usebackq tokens=2* delims=. " %%i IN (`"ipconfig | find "IP""`) DO echo Hello %%j > ip.txt
 

В файл ip.txt, записывается строчка "Hello xxx.xxx.xxx.xxx"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:54 19-10-2006
denis255

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

Цитата:
В файл ip.txt, записывается строчка "Hello xxx.xxx.xxx.xxx"

Он мне еще в конце конструкции добавляет такой квадратик как от него избавиться?
 
 

Всего записей: 424 | Зарегистр. 10-08-2004 | Отправлено: 10:34 19-10-2006 | Исправлено: denis255, 10:53 19-10-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
denis255
Я не очень понял, что за квадратик - не могу воспроизвести. Попробуй так:

Код:
for /F "usebackq tokens=3,4,5,6 delims=. " %%i IN (`"ipconfig | find "IP""`) DO echo Hello %%i.%%j.%%k.%%l > ip.txt

Насчет того, чтобы вставить в середине текста - я, конечно, не истина в последней инстанции, но по-моему для этого проще написать программку на каком-нибудь языке программирования. CMD не самая подходящая вещь для разбора текста.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:20 19-10-2006
Snegov1k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А есть способ *bat подружить с русскими путями? пробую CHCP 1251 чего то не хочет

Всего записей: 48 | Зарегистр. 12-10-2006 | Отправлено: 14:54 19-10-2006
ViSiToR



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

Цитата:
есть способ *bat подружить с русскими путями?

А пути содержат пробелы? если да, то помести тот путь, который содержит пробелы, в двойные кавычки - я\"путь с пробелами".
 
А вообще, можно открыть ком строку (Пуск - Выполнить - cmd.exe), и нажать на заголовке окна правую кнопку мышки, и выбрать пункт “Свойства”, затем выбрать там шрифт Lucida Console. Это должно помочь, как для путей, так и для отображения кириллицы в окне ком. строки.
 
Можно конечно и батником это сделать, но с первого раза не всегда будет работать...
 

Код:
 
REG ADD "HKCU\Console" /v FaceName /t REG_SZ /d "Lucida Console" /f  
REG ADD "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v FaceName /t REG_SZ /d "Lucida Console" /f

 
Чтобы вернуть обратно (если уже не стоял этот шрифт), нужно прописать эти строчки:
 

Код:
 
REG ADD "HKCU\Console" /v FaceName /t REG_SZ /d "Terminal" /f  
REG ADD "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v FaceName /t REG_SZ /d "Terminal" /f

 
Добавлено:
Но также и нужно после этого писать chcp 1251

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:38 19-10-2006 | Исправлено: ViSiToR, 15:41 19-10-2006
Snegov1k



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

Всего записей: 48 | Зарегистр. 12-10-2006 | Отправлено: 16:15 19-10-2006
BCACOUSTICS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет ! Помогите решить задачу на батнике , плз. Вот сценарий.  
 
1. Вырубаем Winamp на компе (если включен)  Возможно ли это?
2. Конектимся к FTP серверу , к указанной папке.
3. Берем файлы или всю папку ,и тащим ее на наш комп ,в указанную папку
4. Названия папок и файлов могут совпадать поэтому, заменить все совпадающие
5. Повторить пункты 2 и 3 если соединение с ftp было прервано и т.п
6. Если все ОК то отправляем на сервер ftp в файлик  TXT.log информацию о IP адресе компа-клиента,текущем времени , дате , и текст типа "Все в порядке папка обновлена"
7. Завершаем ftp коннект.
Вот такой батник спасет меня от беготни (ножками и автобусом) по большому городу,по 40-ка клиентам ,с компашкой на которой 5-15 мегабайт.
Заранее СПАСИБО !

Всего записей: 1 | Зарегистр. 19-10-2006 | Отправлено: 23:16 19-10-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru