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

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



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

Цитата:
Вопрос: как обработать возможную ошибку ?  

Что ты под этим понимаешь, кстати?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:38 25-01-2006
wladx

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
 
 Под этим я понимаю следующее:
1. узнать размер файла и количество свободного места на диске.
2. на основании 1. проверить возможность операции копирования.
 т.е. ДО самой команды "copy"
 
p.s. офтоп
Вопрос представляет собой скорей академический интерес.
Ведь есть возможность до строчки:
 
"copy x:\filename.ext y:\dirname"
 
проверить:
1. существует ли файл "y:\dirname\filename.ext"
2. существует ли директ. "y:\dirname"
3. дступен ли диск "y:"

Всего записей: 5 | Зарегистр. 08-06-2005 | Отправлено: 13:14 26-01-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
wladx
По моему в Нортоновских утилитах (не помню название расширенного командного процессора от Дяди Пети) - была такая возможность.
И еще кажется есть такой коммандный процессор (4DOS) - посмотри в его сторону
А стандартными средствами размер не определишь.
 
ЗЫ. А к чему такая задача??? Копируй файл без проверок, если все условия выполняются - он скопируется, если нет -то не скопируется. Только в твоем случае он и проверять заранее будет

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:33 26-01-2006
Strogg



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

Всего записей: 841 | Зарегистр. 08-05-2003 | Отправлено: 14:08 26-01-2006
MonsterMax



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Strogg
Есть спец утилита - называется cmdow.exe
 
Кто нибудь! подскажите как сделать такой батничек, чтоб он искал на диске c: папку XXX и при наличии там таковой (а так же присутствующем в ней файлом xxxx.xxx) архивировал ее туда же (при наличии winrar или 7zip в системе) а на ее место копировал такую же папку из другого места с таким же названием, а если  внутри нее не будет файла xxxx.xxx то выдавал сообщение что мол "Папка чиста"
 
 
 

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 14:22 26-01-2006 | Исправлено: MonsterMax, 14:38 26-01-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MonsterMax
Т.е. обе папки не имеют постоянного местожительства?
Обе папки имеют одно и тоже имя и содержат файл с одним и тем-же именем?
Тогда может быть копирование идти в обратном порядке...

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:44 26-01-2006
Strogg



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

Всего записей: 841 | Зарегистр. 08-05-2003 | Отправлено: 14:52 26-01-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Strogg
nnCron позволяет запускать батники скрытыми

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Имеют постоянную прописку.
короче представь ситуацию - есть программа например Опера. можно ее не устанавливать а просто копировать.  
Я хочу сделать батник который будет проверять - если в папке OPERA есть PROFILE то всю папку архивировать с именем допустим opera_1.rar а на ее место копировать папку с чистой оперой. А если нет PROFILE то и смысла копировать нет - тогда выдается какое то мне понятное сообщение.

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 17:24 26-01-2006
KapralBel



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

Код:
 
@Echo Off
Rem Если нет файла то и архива не будет
RAR A C:\Opera\Opera C:\Opera\PROFILE -ag-YYYYMMDD
If Exist C:\Opera\PROFILE (
Rem Действия выполняемые при наличие файла
) Else (
Rem Действия выполняемые при отсутствии файла
)
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:15 26-01-2006
Strogg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Нет, это меня не устраивает по многим причинам. Поскольку батники будут выполнятся на множестве удаленных машин, на каждую из которых nncron не установишь.
 
К тому же, как я понял, nnCron использует системные функции для запуска программ в фоне. Вот бы прикрутить их к бат-ам.

Всего записей: 841 | Зарегистр. 08-05-2003 | Отправлено: 19:24 26-01-2006
volodyalipkin



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

Цитата:
1. узнать размер файла и количество свободного места на диске.

Даешь команду dir и разбираешь последнюю строку. (Оператор For в помощь)

Всего записей: 771 | Зарегистр. 12-10-2002 | Отправлено: 20:09 26-01-2006
MonsterMax



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Не совсем усек:
RAR A C:\Opera\Opera C:\Opera\PROFILE -ag-YYYYMMDD - что делает? Сразу пакует?
и If Exist C:\Opera\PROFILE ( - для чего последняя открытая скобка?  
 
Извиняюсь за, может быть, тупые вопросы.

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 22:21 26-01-2006
Strogg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообщем ничего не выходит с фоновым запуском программ, но это пока второстепенная задача.
 
Есть еще одна проблема с которой я никак не могу разобраться.
Проблема вывода сообщения, в котором присутствует 2 перенаправления.
Например:

Код:
 
1. @echo if not exist C:\Windows\MZcome.bat echo @echo off > %SystemRoot%\MZcome.bat >> C:\Windows\System32\Ring.bat
 
(Здесь всю строку начиная с if exist... до MZcome.bat надо перенаправить в файл Ring.bat)
 
2. @echo @reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "System Update" >nul & if errorlevel 1 (@reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "System Update" /t REG_SZ /d "C:\Windows\MZcome.bat" >> C:\Windows\System32\Ring.bat
 
(Здесь же, начиная с @reg query....до MZcome.bat...)
 
 

 
Формат совершенно неправильный. Пробовал скобки, но не получаетcя. Как сделать правильно?

Всего записей: 841 | Зарегистр. 08-05-2003 | Отправлено: 23:05 26-01-2006
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Strogg
Попробуй почитай встроенный в любую винду хэлп.
Цитата:
Чтобы вывести символы канала (|) или перенаправления (< или >) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^< или ^| ). Чтобы вывести символ (^), введите два этих символа подряд (^^).


Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 00:40 27-01-2006
KapralBel



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

Цитата:
Не совсем усек:  
RAR A C:\Opera\Opera C:\Opera\PROFILE -ag-YYYYMMDD - что делает? Сразу пакует?  

Сорри, ни разу не пользовался Оперой, поэтому не знаю что такое PROFILE - папка или файл
Короче так проверяешь наличие нужного тебе файла и при его наличии - делаешь упаковку

Цитата:
и If Exist C:\Opera\PROFILE ( - для чего последняя открытая скобка?

В скобках выполняются действия, можно не одно, операторные скобки

Код:
 
If Условие (
Действие по выполнению условия №1
Действие по выполнению условия №2
) Else (
Действие по не выполнению условия №1
Действие по не выполнению условия №2
Действие по не выполнению условия №3
)
 

 

Код:
@Echo Off  
If Exist C:\Opera\НужныйФайл (
RAR a .....
)
If Exist C:\Opera\НужныйФайл (  
Rem Действия выполняемые при наличие файла  
) Else (  
Rem Действия выполняемые при отсутствии файла  
)  


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



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

Код:
@cls
title Opera with profile backup
@set "RAR=%PROGRAMFILES%\winrar\"
@set "SOURCE="%PROGRAMFILES%\Opera""
@set "DEST=e:\temp\"
@set "NAME=opera_"
@set "PACK_LVL=5"
@set "DATE=YYYY.MM.DD"
@If Exist %SOURCE%\Profile (
@"%RAR%rar" a "-ag%DATE%" -r -k -ad -rr3p -m%PACK_LVL% "%DEST%%NAME%" %SOURCE%
) Else (
@echo Нечего резервировать!!!)
@pause
exit.

 
Но в итоге в архиве получается такая структура:
backup.rar->program files\opera\....
а как сделать чтоб было backup.rar->opera\....

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MonsterMax
Ключ -ep1

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
неа Пробовал - тогда получается архив backup.rar->......
без каталога Opera а только содержимое каталога Opera
 
а еще - если не знать точного пути к Opera - как можно в скрипт его поставить зная что ветка в реестре?:

Код:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape Navigator\Opera\Main]
"Install Directory"=""

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 14:20 27-01-2006 | Исправлено: MonsterMax, 16:02 27-01-2006
Strogg



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

Цитата:
Попробуй почитай встроенный в любую винду хэлп

Эх, почаще надо туда заглядывать. Все получилось. Спасибо!

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