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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
незнаю .. я давно для таких вещей activ perl юзаю ... отличная штука

Всего записей: 538 | Зарегистр. 23-06-2006 | Отправлено: 17:23 31-07-2006
fstas

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

Цитата:
 Может кто-нибудь знает как включить и выключить сетевое подключение?
 
 я бы хотел через bat.
 
Заранее спасибо

 

Цитата:
fstas
в шапке  
Запуск сетевого подключения

 
там описано как запустить дозвон по модемному соединению. А мне нужно включать и выключать сетевую карту

Всего записей: 3 | Зарегистр. 31-07-2006 | Отправлено: 18:56 31-07-2006
Refugee

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

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 21:03 31-07-2006
as_esm



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

Цитата:
А почему не встроенные Assoc и FType

интересно, а это риторический вопрос?
но я отвечу: одно из двух или я об этом не подумал или они встроены не во все винды (9x nt w2k xp w2k3) , а может и то и другое...

Всего записей: 58 | Зарегистр. 22-03-2003 | Отправлено: 12:24 02-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
as_esm
Ты прав
На 9х точно этих команд нет

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:05 02-08-2006
as_esm



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
 
да ... то что 9x от всяких nt-ей больше всего отличается, это да+  
но мало того измениния вносились как ни странно в каждую версию, а т.к. я периодически "прыгаю" c версии на версию, то я и не помню, что например было внесено начиная с XP, а что  в server 2003, поэтому меня кстати очень волнует совместимость bat- файлов которые я иногда делаю.
 
а тебе спасибо за замечание про Ftype, благодаря ему я слазил вот сюда  
Справочник по параметрам командной строки >  Ftype и решил что может мне это пригодится...

Всего записей: 58 | Зарегистр. 22-03-2003 | Отправлено: 21:22 02-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
as_esm
Кстати изменений с ХР на 2003 совсем немного, если они есть
Сильные различия в линейках NT/2000/XP/2003 и 9х/МЕ
А в внутри линейки изменения не особо сильные

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем пирвет.
 
Задача переименовать файл(папку).
есть такое
ren x y
ren x %date%
а как сделать на один день раньше ?
типа ren x %date%-1день
 
Заранее спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 10:38 03-08-2006 | Исправлено: slech, 10:38 03-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В теме неоднократно рассматривался вопрос даты (вчерашней даты).
Например - http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=6156&start=164 - здесь.
А уж что с полученной датой делать - дело ваше

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 12:39 03-08-2006
GarEx

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Подскажите, плз, решение проблемы.
Есть батник в начале которого прописано:
 
set GarantPath=D:\Garant  
set GarantOptimizedBase=D:\Base  
set StartPath=D:\Garant\Auto
set PathF1=%GarantPath%\garant.exe
set PathPK=Comb
 
Делов том, что пути установки программы могут быть разные. А требуется выполнение программы на разных пк. Можно ли организовать что-то вроде диалога. Чтобы ответы пользователя записывались в соответствующие переменные среды?

Всего записей: 16 | Зарегистр. 03-08-2006 | Отправлено: 14:26 03-08-2006
drewha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GarEx
Пример:
set HOST_NAME=
set /P HOST_NAME=Enter database host. (default=[localhost]):
if "%HOST_NAME%"=="" set HOST_NAME=localhost

Всего записей: 143 | Зарегистр. 15-01-2003 | Отправлено: 14:38 03-08-2006
GarEx

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо. Но не совсем то. Может я не точно описал ситуацию?
 
Есть ряд бат-файлов. В первом из них прописаны только переменные среды и вызов следующего бат-файла. Пути "D:\Garant\Auto",  "D:\Garant",  "D:\Base" используются во всех следующих батниках. И для того, чтобы не менять пути во всех батниках, был создан один, в котором и заданы переменные среды. Чтобы в случае, если будет осуществляться запуск на другой машине, пришлось бы только подправить записи в первом батнике.
 
Сейчас появилась необходимость это еще упростить и слегка автоматизировать. Т.е. чтобы было таким образом:  
1. "Введите путь к программе GarantPath="
2. Пользователь вводит путь (например С:\program files\garant)
3. Путь прописывается в переменной среде GarantPath т.е. стало (set GarantPath=С:\program files\garant)
4. Введите путь к оптимизированной базе  
и т.д.  
 
Заранее спасибо

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



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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GarEx
 
set /P GarantPath=Введите путь к программе GarantPath:
 
Так понятней?

Всего записей: 143 | Зарегистр. 15-01-2003 | Отправлено: 17:14 03-08-2006
GarEx

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да загвоздка не там была. Разобрался. Все работает.
Только вместо    [ =="" ]      надо  [ ==" " ] Тогда по умолчанию принимает.

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, мот кто знаить как из батника узнать переменную %windir% на удаленной тачке????
Проблема в следующем (к примеру):
Запускаю из батника
SC \\RemotePC create Имя_службы binpath= "C:\windows\system32\Имя программы"
Все OK когда винда на удаленном компе расположена в C:\windows\. А как быть в других случаях(Например, форточки находятся \\RemotePC\D:\winnt)?????

Всего записей: 428 | Зарегистр. 25-07-2005 | Отправлено: 19:53 03-08-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Valdon
Так и пишешь
sc \\PC create sv binpath= %SystemRoot%\System32\sv.exe
sc \\PC create sv binpath= %Windir%\System32\sv.exe
 
 
Добавлено:
Кто подскажет ?
echo %dtDay%.%dtMonth%.%dtYear% работает
ren xz.txt %dtDay%.%dtMonth%.%dtYear% работает
ren xz.txt %dtDay%.%dtMonth%.%dtYear%.txt Ошибка в синтаксисе команды

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:04 03-08-2006 | Исправлено: slech, 23:33 03-08-2006
Kirillhome



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

Цитата:
Кто подскажет ?
echo %dtDay%.%dtMonth%.%dtYear% работает

А что данная команда выводит? (Понятно, что должна выводить, но что на самом деле выводится???)
И ещё - "напоминание" - о "плохих" числах 08, 09 (для команды Set Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных чисел, и 0 для восьмеричных чисел.  Например, числа 0x12, и 022 обозначают десятичное число 18.  Обратите внимание на запись восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной системе исчисления цифры 8 и 9 не используются.) - а сейчас как раз начался восьмой месяц...

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 23:59 03-08-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Задача переиименовывать файлик задним числом.
Set dt=%Date%  
Set dtDay=%date:~0,2%  
Set dtMonth=%date:~3,2%
Set dtYear=%date:~-4%  
Set /a dtDay=%dtDay%-1  
If %dtDay%==0 (Set /A dtMonth=%dtMonth%-1)  
If %dtMonth%==0 (Set /a dtYear=%dtYear%-1) & (Set dtMonth=12)  
If %dtDay%==0 (  
  If %dtMonth%==01 (Set dtDay=31)  
  If %dtMonth%==03 (Set dtDay=31)  
  If %dtMonth%==05 (Set dtDay=31)  
  If %dtMonth%==07 (Set dtDay=31)  
  If %dtMonth%==08 (Set dtDay=31)  
  If %dtMonth%==10 (Set dtDay=31)  
  If %dtMonth%==12 (Set dtDay=31)  
  If %dtMonth%==02 (Set dtDay=28)  
  If %dtMonth%==04 (Set dtDay=30)  
  If %dtMonth%==06 (Set dtDay=30)  
  If %dtMonth%==09 (Set dtDay=30)  
  If %dtMonth%==11 (Set dtDay=30)  
)  
Set dt

 
echo %dtDay%.%dtMonth%.%dtYear%
2.08.2006

 
думаю что дело не в месяце:
ren xz.txt %dtMonth%.%dtMonth%.%dtMonth%.txt  работает

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 00:22 04-08-2006 | Исправлено: slech, 00:26 04-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slech
Ну вот и ошибка
Set dtYear=%date:~-4%  
 
Надо убрать пробелы после ~4%
 
Во всяком случае, у меня (с пробелами) выдаёт следующее
ren xz.txt 3.08.2006  .txt
Ошибка в синтаксисе команды.

 
Ну, а без пробелов - всё нормально

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 00:39 04-08-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