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

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



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для того чтобы в WinXP из командной строки изменить параметры IP для сетевого подключения успешно применяется команда вида:

Код:
netsh interface ip set address name="Имя интерфейса" source=static addr=<Адрес> mask=<Маска> gateway=<Шлюз>

Утилита netsh может выполнять операции на удаленном хосте, для этого применяется ключ -r, команда выглядит так:

Код:
netsh -r <remote machine's current IP> interface ip set address "Local Area Connection" static <IP Address> <Subnet Mask> <Default Gateway> 1

в ответ получаю ошибку:

Код:
The following command was not found: interface ip set address "Local Area Connec  
tion" static <IP Address> <Subnet Mask> <Default Gateway> 1

Имя подключения указано правильно.
Кому нибудь удавалось успешно применять netsh для удаленного конфигурирования IP-протокола?

Всего записей: 1002 | Зарегистр. 03-11-2003 | Отправлено: 11:36 04-08-2006 | Исправлено: ALEF, 11:39 04-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slech
Я для себя "переписал" всё таким образом:

Код:
 
@echo off
set T_Date=%DATE%
IF %T_DATE:~0,1%==0 (
  SET /A T_DAY=%T_DATE:~1,1%) else (
  SET /A T_DAY=%T_DATE:~0,2%)
 
IF %T_DATE:~3,1%==0 (
   SET /A T_MONTH=%T_DATE:~4,1%) else (
   SET /A T_MONTH=%T_DATE:~3,2%)
 
SET /A T_YEAR=%T_DATE:~6,4%
 
set /A T_DAY=%T_DAY%-1
if %T_DAY%==0 (
   SET /A T_MONTH=%T_MONTH%-1
   if %T_MONTH%==0 (
      set /A T_YEAR=%T_YEAR%-1
      SET /A T_MONTH=12
      set /A T_DAY=31)
      else (
      if %T_MONTH%==1 (Set /A T_Day=31)
      if %T_MONTH%==2 (Set /A T_Day=28)
      if %T_MONTH%==3 (Set /A T_Day=31)
      if %T_MONTH%==4 (Set /A T_Day=30)
      if %T_MONTH%==5 (Set /A T_Day=31)
      if %T_MONTH%==6 (Set /A T_Day=30)
      if %T_MONTH%==7 (Set /A T_Day=31)
      if %T_MONTH%==8 (Set /A T_Day=31)
      if %T_MONTH%==9 (Set /A T_Day=30)
      if %T_MONTH%==10 (Set /A T_Day=31)
      if %T_MONTH%==11 (Set /A T_Day=30)
      if %T_MONTH%==12 (Set /A T_Day=31)
   )  
)
   
if %T_MONTH% LSS 10 (if %T_DAY% LSS 10 (echo 0%t_Day%.0%t_Month%.%t_Year%.txt) else echo %t_Day%.0%t_Month%.%t_Year%.txt) else (echo %t_Day%.%t_Month%.%t_Year%.txt)

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 13:05 04-08-2006
Valdon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можна и отсюдава выдрать %windir%  удаленной тачки
 
bootcfg /query /s RemotePC

Параметры загрузки
----------------------------
timeout: 0
default: multi(0)disk(0)rdisk(0)partition(2)\WINNT
Элементы списка загрузки
------------------------
Идентификатор загрузочной записи: 1
Имя:                              "Microsoft Windows 2000 Professional RUS"
Путь:                             multi(0)disk(0)rdisk(0)partition(2)\WINNT
Параметры загрузки ОС:            /fastdetect
 
Идентификатор загрузочной записи: 2
Имя:                              "Microsoft Windows"
Путь:                             C:\
Параметры загрузки ОС:            N/A

НО может быть ктонить подскажет более изящное решение по поводу определения %SystemRoot% на удаленной тачке ???

Всего записей: 428 | Зарегистр. 25-07-2005 | Отправлено: 13:27 04-08-2006 | Исправлено: Valdon, 13:37 04-08-2006
CYBORG1980



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Может так....
 
wmic /node:remotepc os get SystemDirectory

Всего записей: 77 | Зарегистр. 27-05-2004 | Отправлено: 14:23 04-08-2006
Valdon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну блин, все вааще проста:
Если локалный %systemroot%=C:\windows а удаленный %systemroot%=D:\winnt,
делаем так:
Set Var1=Systemroot
sc \\RemotePC create Имя_Службы binpath= %%Var1%%\System32\Имя_программы
 
В итоге имеем:
binpath= D:\winnt\System32\Имя_программы

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



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

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 14:48 04-08-2006
ARiNO

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, есть??? готовые батчики, чтоб до запуска системы (допустим Виня2000) удаляли определенные файлы со всех диррикторий (типа C:/*.tmp, D:/*.tmp, Z:/*.tmp) ?

Всего записей: 59 | Зарегистр. 16-12-2005 | Отправлено: 15:07 04-08-2006 | Исправлено: ARiNO, 15:17 04-08-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ARiNO
Ты просишь или предлогаешь ?

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:11 04-08-2006
ARiNO

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

Всего записей: 59 | Зарегистр. 16-12-2005 | Отправлено: 15:16 04-08-2006
Evig

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую обитателей.Такой вопросец.Есть сетка,имеющая один общий выход в интернет через аппаратный роутер-файервол и АДСЛ-мопед. Как можно получить c  одной из машин,болтающихся внутри сети,и передать Blatу внешний IP адрес?

Всего записей: 22 | Зарегистр. 18-06-2005 | Отправлено: 15:24 04-08-2006
Valdon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну блин бред какойто.....
Делаю следующее:
пуск->выполнить->cmd
>set var1=Systemroot
>sc \\RemotePC create SC binpath= %%Var1%%\System32\SC.EXE
>sc \\RemotePC qc SC
>BINARY_PATH_NAME   : D:\WINNT\system32\r_server.exe
 
Создаю и запускаю батничек следующего содержания:
set var1=Systemroot
sc \\RemotePC create SC binpath= %%Var1%%\System32\SC.EXE
sc \\RemotePC qc SC>c:\temp.txt
 
Содержимое c:\temp.txt:
BINARY_PATH_NAME   : %var1%\system32\r_server.exe
 
Ничего не понимаю, разъясните плиз......

Всего записей: 428 | Зарегистр. 25-07-2005 | Отправлено: 15:28 04-08-2006 | Исправлено: Valdon, 15:34 04-08-2006
slech



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

@echo off
del c:\*.tmp /Q /S
del d:\*.tmp /Q /S
del e:\*.tmp /Q /S

И запустить его сервисом - смотри шапку.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:57 04-08-2006
ARiNO

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

Всего записей: 59 | Зарегистр. 16-12-2005 | Отправлено: 16:05 04-08-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
А если бедет 10 число ?

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 16:14 04-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slech
1) Всё перевожу в числа
   SET /A ...
2) Насколько я смог, я предусмотрел, что бы не появлялись числа типа 08, 09
 IF %T_DATE:~0,1%==0 (
  SET /A T_DAY=%T_DATE:~1,1%) else (
  SET /A T_DAY=%T_DATE:~0,2%)  
3) Если число в дате или в месяце меньше 10, то тогда (при выводе) оно дополняется 0
    if %T_MONTH% LSS 10 .... echo %t_Day%.0%t_Month%.%t_Year%.txt
4) Если больше или равно - то тогда смотри else

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 16:28 04-08-2006
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Valdon
У меня в батнике %%SystemRoot%% работает правильно.
binPath= %%systemroot%% значит создать в реестре путь с %systemroot%, и Windows на той машине переведет %systemroot% в значение при запуске сервиса
 
мой батник для установки радмина

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 16:35 04-08-2006 | Исправлено: Refugee, 16:56 04-08-2006
Valdon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Refugee, сорри, Ваш вариант верен...
Проста, запускал команду из консоли, а надобыло проста ее в батничек запихнуть....

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Понял, спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 18:21 04-08-2006
Aroun



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

Всего записей: 680 | Зарегистр. 19-07-2005 | Отправлено: 11:38 05-08-2006
abz



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

Цитата:
и файлы имеющие одинаковые имена складывались в одну папку  

Очень интересно как это вообще ты видишь возможным два и более файла с одним именем в одной папке...  

Всего записей: 14975 | Зарегистр. 04-11-2002 | Отправлено: 12:03 05-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