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

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

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кому пригодится, BAT файл для создания CAB архивов

Код:
 
@Echo Off  
Set BasePath=%1
Set Name=%~n1
If EXIST Temp.cmd Del Temp.cmd
If EXIST %Name%.ddf Del ^"%Name%.ddf^"
 
Echo .Set DiskDirectoryTemplate= >> ^"%Name%.ddf^"
Echo .Set Cabinet=on >> ^"%Name%.ddf^"
Echo .Set Compress=on >> ^"%Name%.ddf^"
Echo .Set CompressionType=LZX >> ^"%Name%.ddf^"
Echo .Set CompressionLevel=7 >> ^"%Name%.ddf^"
Echo .Set CabinetName1=%name%.cab >> ^"%Name%.ddf^"
Echo .set cabinetnametemplate=%name%*.cab >> ^"%Name%.ddf^"
rem Стандартные значения: 1.44M, 1.25M, 1.2M, 720K, 360K, CDROM
Echo .Set MaxDiskSize=CDROM >> ^"%Name%.ddf^"
for /r %1 %%f in (*.*) do Call :_P1 ^"%%f^"
Call Temp.Cmd
%windir%\system32\makecab.exe /f ^"%Name%.ddf^"
rem copy /b %windir%\system32\Extract.exe+%Name%.cab %Name%.exe
Del Temp.Cmd
Del %Name%.ddf
GoTo :EOF
:_P1
mode con codepage select=1251 > nul
Echo Set FN=%1>>Temp.Cmd  
Echo Echo %%FN%%     %%FN:%BasePath%=%Name%%% ^>^> %Name%.ddf >>Temp.Cmd  
mode con codepage select=866 > nul
GoTo :EOF
 

 
PS Спасибо КапралБелу за помощь

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 09:30 09-02-2006 | Исправлено: Etalon, 11:15 09-02-2006
TAKBO

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь с автозапуском CD.
Есть презентация в PowerPoint и есть небольшой видео клип (DVD формат).
Задача состоит в том, чтобы после проигрывания презентации автоматически запустился видео клип. Я сделал файлы
Autorun.inf:
[autorun]
open=open.bat
 
и open.bat:
@pptview.exe /L "playlist.txt"
@start VTS_01_1.VOB
 
Презентация успешно проигрываетсяи и ждет нажатия клавиши или кнопки.
Если это сделать, то запускается видео клип.
А как заставить PowerPoint автоматически завершать свою работу.
Или подскажите как сделать правильно. И можно ли закольцевать этот CD диск. Т.е. чтобы шел непрерывный показ сначала презентация, потом видеоклип и т.д.

Всего записей: 8 | Зарегистр. 24-10-2004 | Отправлено: 10:09 09-02-2006
Zueuk

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ подскажите, ерунда какая-то творится.
Есть батничек, который работал. Он ниже
 

Код:
 
@echo off
rem Для отсылки баланса
 
rem %date:~3,2% число
rem %date:~6,2% месяц
rem %date:~-2%  год (две цифры от года)
 
rem Set dt=%Date%  
rem echo %date%
 
Set dtDay=%date:~3,2%
rem echo %dtDay%
 
Set dtMonth=%date:~6,2%
Set dtYear=%date:~-2%
Set /a dtDay=%dtDay%-1  
  If %dtDay%==1 (Set dtDay=01)  
  If %dtDay%==2 (Set dtDay=02)
  If %dtDay%==3 (Set dtDay=03)
  If %dtDay%==4 (Set dtDay=04)
  If %dtDay%==5 (Set dtDay=05)
  If %dtDay%==6 (Set dtDay=06)
  If %dtDay%==7 (Set dtDay=07)
  If %dtDay%==8 (Set dtDay=08)
  If %dtDay%==9 (Set dtDay=09)
 
 
If %dtDay%==0 (Set /A dtMonth=%dtMonth%-1)  
If %dtMonth%==0 (Set /a dtYear=%dtYear%-1) & (Set dtMonth=12)  
If %dtDay%==0 (  
  If %dtMonth%==1 (Set dtDay=31)  
  If %dtMonth%==3 (Set dtDay=31)  
  If %dtMonth%==5 (Set dtDay=31)  
  If %dtMonth%==7 (Set dtDay=31)  
  If %dtMonth%==8 (Set dtDay=31)  
  If %dtMonth%==10 (Set dtDay=31)  
  If %dtMonth%==12 (Set dtDay=31)  
  If %dtMonth%==2 (Set dtDay=28)  
  If %dtMonth%==4 (Set dtDay=30)  
  If %dtMonth%==6 (Set dtDay=30)  
  If %dtMonth%==9 (Set dtDay=30)  
  If %dtMonth%==11 (Set dtDay=30)  
)  
rem Set dt  
 
 

 
После выполнения выдает "Неправильное число...........".  
 
Но, если меняю строку (из-за которой, как понимаю, ошибка)
Set dtDay=%date:~3,2%  
на, например, такую
Set dtDay1=%date:~3,2%  
то проходит без этой ошибки.
 
Причём, на число месяца 8 и 9 ругается, а с остальными работает.
Ничего не понимаю.

Всего записей: 58 | Зарегистр. 15-08-2003 | Отправлено: 11:55 09-02-2006
dartvaider



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ подскажите пожалуйста как быть с условиями?
Мне нужно написать батник, который в зависимости от панга машины будет выполнять определенное действие
 
т.е. если  
 
если ping 192.168.0.1  
тогда выполняется условие....
иначе  
 
если ping 192.168.0.2
тогда выполняется другое условие условие....
.....
и.д.
 
 
Т.Е.Если машина пингуется выполняется какое либо действие, например net send на эту машину...
 
Реально ли это сделать, просто я не знаком с условиями работать с cmd
 
 

Всего записей: 534 | Зарегистр. 31-08-2005 | Отправлено: 12:20 09-02-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Zueuk
Что у тебя выдает по команде Echo %Date%

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:22 09-02-2006
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dartvaider
http://forum.ru-board.com/topic.cgi?forum=62&topic=6156#237

----------
I am free of all prejudice. I hate everyone equally.

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Он работает даже сейчас, если число сменить на другое, кроме 8,9 месяца.
 
Если надо, echo %date% выдает
Чт 09.02.2006

Всего записей: 58 | Зарегистр. 15-08-2003 | Отправлено: 14:20 09-02-2006 | Исправлено: Zueuk, 14:25 09-02-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Zueuk
Ошибка в том, что даты вида 08, 09 - воспринимаются как восьмиричные
Сейчас поправлю и выложу исп.версию

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

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

Всего записей: 58 | Зарегистр. 15-08-2003 | Отправлено: 14:41 09-02-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Zueuk
Не суетись - уже поправил (кстати и го и месяц тоже будут работать корректно)

Код:
 
@echo off  
Rem Set Date=Чт 09.02.2006
rem Для отсылки баланса
 
rem %date:~3,2% число  
rem %date:~6,2% месяц  
rem %date:~-2%  год (две цифры от года)  
 
rem Set dt=%Date%  
rem echo %date%  
 
Set dtDay=%date:~3,2%
rem echo %dtDay%  
 
Set dtMonth=%date:~6,2%
Set dtYear=%date:~-2%
 
If "%dtDay:~0,1%" == "0" Set dtDay=%dtDay:~1,1%
If "%dtMonth:~0,1%" == "0" Set dtMonth=%dtMonth:~1,1%
If "%dtYear:~0,1%" == "0" Set dtYear=%dtYear:~1,1%
 
 
Set /a dtDay=%dtDay%-1  
  If %dtDay%==1 (Set dtDay=1)  
  If %dtDay%==2 (Set dtDay=2)  
  If %dtDay%==3 (Set dtDay=3)  
  If %dtDay%==4 (Set dtDay=4)  
  If %dtDay%==5 (Set dtDay=5)  
  If %dtDay%==6 (Set dtDay=6)  
  If %dtDay%==7 (Set dtDay=7)  
  If %dtDay%==8 (Set dtDay=8)  
  If %dtDay%==9 (Set dtDay=9)  
 
 
If %dtDay%==0 (Set /A dtMonth=%dtMonth%-1)  
If %dtMonth%==0 (Set /a dtYear=%dtYear%-1) & (Set dtMonth=12)  
If %dtDay%==0 (  
  If %dtMonth%==1 (Set dtDay=31)  
  If %dtMonth%==3 (Set dtDay=31)  
  If %dtMonth%==5 (Set dtDay=31)  
  If %dtMonth%==7 (Set dtDay=31)  
  If %dtMonth%==8 (Set dtDay=31)  
  If %dtMonth%==10 (Set dtDay=31)  
  If %dtMonth%==12 (Set dtDay=31)  
  If %dtMonth%==2 (Set dtDay=28)  
  If %dtMonth%==4 (Set dtDay=30)  
  If %dtMonth%==6 (Set dtDay=30)  
  If %dtMonth%==9 (Set dtDay=30)  
  If %dtMonth%==11 (Set dtDay=30)  
)
Set dtDay=0%dtDay%
Set dtDay=%dtDay:~-2%
Set dtMonth=10%dtMonth%
Set dtMonth=%dtMonth:~-2%
Set dtYear=10%dtYear%
Set dtYear=%dtYear:~-2%
Set dt
 

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

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

Всего записей: 58 | Зарегистр. 15-08-2003 | Отправлено: 15:16 09-02-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Мы с тобой про robocopy говорили.
Задача скопировать файл только если он изменился.
Т.е. если файл старый, то мы его не копируем и возвращаем ERRORLEVEL 1
 
Может криво ищу.
Ключика нужного найти не могу.
/copy:D не спасает.

Всего записей: 4890 | Зарегистр. 10-11-2004 | Отправлено: 20:57 09-02-2006 | Исправлено: slech, 20:58 09-02-2006
volodyalipkin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется файл. В его контекстном меню ( клик правой мышкой) есть ряд пунктов. Как из скрипта вызвать НЕ ПЕРВЫЙ пункт меню. WSH и любые общедоступные средства годятся.

Всего записей: 768 | Зарегистр. 12-10-2002 | Отправлено: 21:10 09-02-2006
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slech
как вариант: cp.exe из набора UnixUtils
cp -u, --update
copy only when the SOURCE file is newer than the destination file

----------
I am free of all prejudice. I hate everyone equally.

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 21:11 09-02-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vu1tur
cp c:\windows\hh.exe hh.exe
cp c:\windows\hh.exe hh.exe -u
echo %errorlevel%
0
не подходит.

Всего записей: 4890 | Зарегистр. 10-11-2004 | Отправлено: 21:40 09-02-2006
NoName_GAmer

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите написать *.bat для запуска программы после ввода пароля, и ввод пароля не должен отображатса....  
и желательно чтоб пароль брался из файла.

Всего записей: 2 | Зарегистр. 09-02-2006 | Отправлено: 23:32 09-02-2006 | Исправлено: NoName_GAmer, 14:36 10-02-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NoName_GAmer
Так пароль вводить или лутше чтобы он брался из файла ?
если из файла то можно так вроде:
prog.exe <<pas.txt
 
Добавлено:
C:\>dir c:\WINDOWS\hh.exe
 
21.09.2002  20:13            10 752 hh.exe
 
C:\>copy c:\windows\hh.exe /D:09-02-2006 /Y
Скопировано файлов:         1.
 
Почему файл копируется ?  
Ведь дата его изменения раньше чем дата указаная в параметре ?

Всего записей: 4890 | Зарегистр. 10-11-2004 | Отправлено: 00:03 10-02-2006
vu1tur



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

Цитата:
не подходит.

Так тебе нужно errorlevel получить или скопировать, если новый? cp -u просто копиурет либо не копирует.
 
Добавлено:
slech

Цитата:
C:\>copy c:\windows\hh.exe /D:09-02-2006 /Y

/D           Allow the destination file to be created decrypted
что ты этим хотел добиться?

----------
I am free of all prejudice. I hate everyone equally.

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 00:42 10-02-2006
MIKKYPOL



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросик!
 
как правильно написать bat файл , который будет поочереди запускать другие bat файлы
обязятельно запускать по очереди

Всего записей: 100 | Зарегистр. 26-01-2006 | Отправлено: 08:32 10-02-2006
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MIKKYPOL
call file1.bat
call file2.bat
call file3.bat

----------
I am free of all prejudice. I hate everyone equally.

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 08:50 10-02-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