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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasiliy74
тут тебе должна помочь утилита psexec  
можно взять на _http://www.sysinternals.com/Utilities/PsTools.html

Всего записей: 1252 | Зарегистр. 30-01-2003 | Отправлено: 10:30 26-06-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bredonosec
Dir /Q
 
igor_andreev
В аське kappa11 я помог, там надо было удалить все содержимое папки за исключением 3-4 конкретных (по имени) файлов

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:37 26-06-2006 | Исправлено: KapralBel, 11:39 26-06-2006
surgutfred



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А можно при помощи батника редактировать текстовый файл?
например строчка  
 17076    В-О                 2   -  X   29.08.2002 Рога и копыта
нужно в строке заменить В-О на ВО, а таких строк может быть много.

Всего записей: 589 | Зарегистр. 21-08-2001 | Отправлено: 08:17 27-06-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
surgutfred
имхо, можно извернуться.  
только для подобного проще использовать какой нить тектовый редактор.  
(например встроенный в FAR, а для автоматизации использовать макросы в нем же, но это совсем другая история .... )
ЗЫ:  
на предыдущей странице bredonosec привел ссылки по подобной теме ...

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 10:56 27-06-2006 | Исправлено: uZver, 11:09 27-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
задача
Необходимо установить программу, но перед этим нужно проверить в реестре стоит она или нет. (известна ветка реестра). все это происходит через батник.

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 11:33 28-06-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mikolamkn
импорт из реестра regedit /ea install.reg {нужная ветка}
а дальше разбирать содержимое импорта.
 

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 12:12 28-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
а если ее нет, то что будет? она может существоватьи не  существовать.
 

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 12:23 28-06-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mikolamkn
То в этом случае и файл не создасться (но и не удалиться если .reg с таким именем уже существовал)

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:26 28-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как это написать не понимаю? надо так если есть то выбрасывает из установки, если нет то продолжает.

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 12:36 28-06-2006
KapralBel



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

Код:
 
@Echo Off
If Exist install.reg Del install.reg
regedit /ea install.reg {нужная ветка}
If Exist install.reg GoTo :_L1
GoTo :_L2
 
:_L1
Rem Действия проводимые если ветка реестра существует
GoTo :EOF
 
:_L2
Rem действия проводимые если ветка реестра не существует
GoTo :EOF
 

 
Что будешь делать если ветка реестра существует а сама программа отсутствует
Т.е если удалили папку с программой а реестр не очищен?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:46 28-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
это конечно вопрос хороший. можно конечно проверить на прямую по наличию папки, т.е.
if exist \путь\ goto B
if not exist \путь\ goto C
 
а можно проанализировать ветку реестра,  
...............
[HKEY_LOCAL_MACHINE\SOFTWARE\НАзвание]
 
[HKEY_LOCAL_MACHINE\SOFTWARE\название\CBShell]
"ROOTDIR"="c:\\ПУТЬ"
...............................
брал путь и проверял наличие папки
if exist \c:\\ПУТЬ\ goto B
if not exist \c:\\ПУТЬ\ goto C
 
 
 
Добавлено:
[@Echo Off  
If Exist install.reg Del install.reg  
regedit /ea install.reg {нужная ветка}  
If Exist install.reg GoTo :_L1  
GoTo :_L2  
 
:_L1  
Rem Действия проводимые если ветка реестра существует  
GoTo :EOF  
 
:_L2  
Rem действия проводимые если ветка реестра не существует  
GoTo :EOF  
 
 
странно но не работает

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 13:02 28-06-2006
KapralBel



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

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:15 28-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
@Echo off
cls
 
If Exist install.reg Del install.reg  
regedit /ea install.reg {HKEY_LOCAL_MACHINE\SOFTWARE\Quorum}  
If exist install.reg goto :B
goto :C
 
:B
Rem Действия проводимые если ветка реестра существует  
 
for /f "tokens=1,2" %%v in ('date /t') do set d=%%v
for /f "tokens=1" %%u in ('time /t') do set t=%%u
if "%t:~1,1%"==":" set t=0%t%
set day=%d:~0,2%-
 
rem Отображает ггггммдд-ччсс
set timestr=%d:~6,4%%d:~3,2%%day%%t:~0,2%%t:~3,2%
 
rem Отображает ггггммдд-1
rem set timestr=%d:~6,4%%d:~3,2%%day%
 
md c:\quorum\distr\copy\%timestr%
 
xcopy /E /H /-Y c:\Quorum\Cl_bank\*.* c:\quorum\distr\copy\%timestr%
 
echo %timestr%
rem Goto ERR
 
:ERR
 
Echo
 
Pause
Goto ERR_1
 
:ERR_1
cls
Echo
 
 
Pause
Goto :end
 
 
 
Rem действия проводимые если ветка реестра не существует  
 
:C
rem \___ Копирование софта на диск System in System ____\
 
xcopy /E /H/-Y e:\Cl_bank\System\*.* C:\Quorum\Cl_bank\System\*.*
 
и т.д.
у меня к примеру так. Он не смотрит в реестр, а сразу переходит к :c

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 14:37 28-06-2006 | Исправлено: mikolamkn, 09:24 29-06-2006
KapralBel



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

Код:
 @Echo off
cls
 
If Exist install.reg Del install.reg  
start /wait regedit /ea install.reg {HKEY_LOCAL_MACHINE\SOFTWARE\Quorum}  

а такой вариант?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:46 28-06-2006
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
{HKEY_LOCAL_MACHINE\SOFTWARE\Quorum}   фигурные скобки убрать надо

Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 14:55 28-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тоже к сожалению.
 
Добавлено:
вот супер. работает.
 
@echo off
cls
If Exist install.reg Del install.reg  
rem regedit /ea install.reg {HKEY_LOCAL_MACHINE\SOFTWARE\........}  
start /wait regedit /ea install.reg HKEY_LOCAL_MACHINE\SOFTWARE\......  
If exist install.reg goto :B
If not exist install.reg goto :C
:B
Rem Действия проводимые если ветка реестра существует  
 
goto end
:C
Rem действия проводимые если ветка реестра не существует  
 
goto end
:end
 
ВСЕМ ОГРОМНОЕ СПАСИБО......
А как еще сделать поиск по ветке реестра?
есть вот  
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Quorum]
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Quorum\CBShell]
"ROOTDIR"="c:\\quorum\\cl_bank"
"Transport"="extrnbat.qdr"
"Crypto"="batcrypt.qdr"
и т.д.
он должен найти строку "ROOTDIR"="c:\\quorum\\cl_bank"
и по пути c:\\quorum\\cl_bank пойти проверять наличие папки.

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 14:57 28-06-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mikolamkn
 
1. Сохраняй в старом формате REGEDIT4
2. Используй команду FOR для разбора файла по строкам

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:09 28-06-2006 | Исправлено: KapralBel, 15:19 28-06-2006
VladimirKvach

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тут несколько страниц назад было. Так и не добили.
 

Цитата:
CHCP 1251  
start D:\test.xls  
start D:\Work\тест.xls  
exit  
 
но если в путях к файлу есть пробелы то не работает.  
если взять пути в ковычки, тоже не работает...  
что делать с пробелами в путях?

 
Дело в том что если в кавычках, то start считает это заголовком окна. Надо так:
 
start "" "D:\test.xls"  
start "" "D:\Work\тест.xls"
start "" "D:\Новая папка\Тестовый файл.xls"  
exit  
 
И никакой CHCP не нужен! Русские буквы в dos-кодировке и все.

Всего записей: 23 | Зарегистр. 03-04-2006 | Отправлено: 06:20 29-06-2006
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно ли осуществить поиск записи по BDE. Если да, то как?
 
Добавлено:
Есть задача..
имеется путь.
с:\aaa\ccc\ddd\xxx\cfg.cfg
название xxx постоянно меняется. необходимо определить текущее название папки/
 
@echo off  
chcp 1251  
del cfg.cfg  
copy c:\aaa\ccc\ddd\xxx\cfg.cfg  
rename cfg.cfg cfg1.cfg  
for /f "tokens=*" %%a in ('more^<cfg1.cfg') do call :_replace %%a  
goto eof  
:_replace  
set i=%*  
echo %i%  
set i=%i:C:\=A:\%  
rem set i=%i: # = # %  
rem set i=%i: # = # %  
echo %i%>>cfg.cfg
del cfg1.cfg
copy cfg.cfg с:\aaa\ccc\ccc\ddd\xxx\*.*
goto eof
remdel cfg.cfg
:eof  

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 09:19 29-06-2006 | Исправлено: mikolamkn, 13:50 29-06-2006
Aroun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здрасти!
Вопрос такой возможно ли реализовать следущюю задачу посредством бат файлов?:
Каждые 5минут/час/день с сетевого подключения \\center\tachki\tachka 1(всего их 20) будет архивироваться вся инфа на локальный комп с определенным ай-пи, причем скрипт должен запускаться НЕ на нем.Причем сетевое подключение может быть не доступно в какой-то момент времени, как сделать чттобы скрипт периодически проверял его на доступность?
PЗ.Ы. подключение будет требовать пароль/логин.Все тачки-винда хр сеть-рабочая группа

Всего записей: 680 | Зарегистр. 19-07-2005 | Отправлено: 15:54 29-06-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