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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 | Цитировать | Сообщить модератору
Serge2005
Попробуй следующее
У меня команда Dir <disk>:\
Возвращает по %ErrorLevel%
0 - если есть диск
1 - если диска нет (не вставлен или буква не определена)

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



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

Цитата:
А по какому критерию 2 файла ищутся?

Да по названию файлов. Там будет 2-3 файла и их названия известны. И часть строки всегда постоянная, просто уникальная для каждого файла.

Всего записей: 6398 | Зарегистр. 22-09-2002 | Отправлено: 16:41 14-04-2006
KapralBel



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

Код:
 
@Echo Off
Set count=0
Set name=master.xml
For /R J:\ %%a In (*.*) Do Call :_Find %%~nxa "%%a"
Echo  Общее кол-во отредактированых файлов: %count%
GoTo :EOF
 
:_Find
If /i %name% NEQ %1 GoTo :EOF
Rem Строки делающие замену
Echo Successfuly Edited: %2  
Set /a count=%count%+1
GoTo :EOF
 

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



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KapralBel
Спасибо за помощь. Т.к. в этом совсем не бум-бум.
1) Где указывать названия файлов? В которых будет замена?
2) Где указывать путь для тех 2-3 файлов в которых будет производиться замена?
3) Где указывать что именно будет заменено? И где указать на что будет заменено?
Заранее спасибо =)

Всего записей: 6398 | Зарегистр. 22-09-2002 | Отправлено: 16:59 14-04-2006
KapralBel



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

Цитата:
Где указывать названия файлов? В которых будет замена?

Set name=master.xml
 

Цитата:
Где указывать путь для тех 2-3 файлов в которых будет производиться замена?  

For /R J:\ %%a In (*.*) Do Call :_Find %%~nxa "%%a"
 

Цитата:
Где указывать что именно будет заменено? И где указать на что будет заменено

с этим пока проблема, под рукой утилиты которая меняет - нет, а вот сегодня на .bat- написать не успею

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:04 14-04-2006 | Исправлено: KapralBel, 17:05 14-04-2006
scup



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

Цитата:
Где указывать что именно будет заменено? И где указать на что будет заменено?  

3xp0 Я для этого использовал утилитку gsar - работает на ура из батника, http://gnuwin32.sourceforge.net/packages/gsar.htm тута лежит.
 
Добавлено:
http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&start=120 поиск и замена в файле подробно расписаны.

Всего записей: 556 | Зарегистр. 04-04-2003 | Отправлено: 17:17 14-04-2006
3xp0



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
scup
мне желательно без 3rd party tools.
Надо чтобы был простой батник.
 
KapralBel
будем ждать  

Всего записей: 6398 | Зарегистр. 22-09-2002 | Отправлено: 17:55 14-04-2006
scup



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
3xp0 Я дал ссылку http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&start=120 там расписан вариант без сторонних утилит, пролистай ту страницу.

Всего записей: 556 | Зарегистр. 04-04-2003 | Отправлено: 18:11 14-04-2006
Allex_Van_Fogen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пробегал тут батничек для организации задержки исполнения. Вот мой вариант (относительно точный, работает без всяких DelayedExpansion):
 

Код:
 
@echo off
set timer=5
echo start = %time%
call elay %timer%
echo stop = %time%
set timer=
goto :EOF
 
elay
set /a tdelay=%1
:Wait0
set tms=%time:~-2%
:Wait1
if not %time:~-2% == 00 goto Wait1
:Wait2
if not %time:~-2% == %tms% goto Wait2
set /a tdelay-=1
if not %tdelay% == 0 goto Wait0
set tdelay=
set tms=
goto :EOF
 

 
Шапка:

Цитата:
Невозможности — что нельзя сделать с помощью командных файлов:  
-

 
Пока пусто, вселяет надежду... Может ось новую напишем?

Всего записей: 92 | Зарегистр. 09-03-2003 | Отправлено: 18:46 14-04-2006
ARIES123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет...вот такая задачка..
Нуна на FTP ежедневна перекладывать файлы  
Хотелось бы автоматизировать через бат-файл
Вобщем неудается автоматизировать потомушта в консольном клиенте постоянно просит логин и пароль.
Вопрос: Нежели никак нельзя ввойти автоматизовано?

Всего записей: 1 | Зарегистр. 14-04-2006 | Отправлено: 18:55 14-04-2006
3xp0



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
scup
Если бы я что-то в этом понимал... я помощи прошу

Всего записей: 6398 | Зарегистр. 22-09-2002 | Отправлено: 19:29 14-04-2006
hhr

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
помогите, плиз.
есть куча папок вида ####, где # - любая цифра.
в каждой такой папке лежит файл file.txt
в этом файле текстовая многострочная инфа (3-4 строки)
нужно взять эту инфу до первого знака _(_ (левая скобка), и обозвать директорию тем, что получилось, заменив пробелы, тире, двоеточия на подчеркивания.
вот.

Всего записей: 289 | Зарегистр. 20-03-2005 | Отправлено: 21:25 14-04-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
Есть много папок.
Как каждую упаковать в архив при помощи winrar'a ?
 
Заранее спасибо.

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

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

Цитата:
Попробуй следующее  
У меня команда Dir <disk>:\  
Возвращает по %ErrorLevel%  
0 - если есть диск  
1 - если диска нет (не вставлен или буква не определена)

Что-то я торможу((( Подскажите, пожалуйста, как получить %ErrorLevel%
то есть  как проверить, есть диск или нет...?

Всего записей: 555 | Зарегистр. 11-02-2006 | Отправлено: 21:23 16-04-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Serge2005
eу меня есть диск D:\ и нету диска L:\
делаем так

Цитата:
 
dir D:\
echo %errorlevel%
0
 
dir L:\
echo %errorlevel%
1
 

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 21:34 16-04-2006 | Исправлено: slech, 21:36 16-04-2006
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Реально с помощью командного файла создвать\удалять папки в заданное время?

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 23:43 16-04-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
cluster
Реально...
Проверяешь время если устраивает - делаешь заданные действия, если не устраивает - перешодишь на начало цикла и снова проверяешь время....
Но проще использовать какой-либо планировщик (хотя бы встроенный)

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 09:49 17-04-2006
Allex_Van_Fogen



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

Цитата:
Невозможности — что нельзя сделать с помощью командных файлов:

 
Заменить в текстовом файле все символы "!" на "^!" - похоже нереально решить средствами командных файлов...

Всего записей: 92 | Зарегистр. 09-03-2003 | Отправлено: 10:00 17-04-2006
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Надо сделать, чтобы создавался каталог в формате dd.mm.yy (дата запуска командного файла), а пустые каталоги (например, вчерашний) удалялись

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 10:06 17-04-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.  
Есть много папок.  
Как каждую упаковать в архив при помощи winrar'a ?  
И что бы имя архива = имя папки
Заранее спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 12:07 17-04-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