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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно вывести результат выполнения командного файла в текстовый.
Пишу call 1.cmd > res.txt, получаю вывод только заданных в 1.cmd команд, но не результатов их выполнения (в случае, например, если не удается выполнить remdir, хочу видеть соответствующее сообщение). Как записать именно сообщения об успешности/неудаче выполнения всех команд?

Всего записей: 98 | Зарегистр. 02-02-2004 | Отправлено: 00:24 28-03-2006
jak_forest

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

Код:
call 1.cmd > res.txt 2>&1

2>&1 - перенаправляет поток вывода ошибок в стандартный поток вывода, который как указанно ранее выводится в файл.

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 08:55 28-03-2006
Romero_Ekb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jak_forest
Спасибо огромное! Никак не мог найти ответ на этот вопрос

Всего записей: 98 | Зарегистр. 02-02-2004 | Отправлено: 10:50 28-03-2006
seggah

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи принимаются?  
Например, есть папка с 1000 файлов. Я хочу переписать эти файлы на минимальное количество дискет. (Резать на порции winrar'ом нельзя). Т.е. программа должна из этой тысячи отбирать некоторое количество файлов, чей общий размер максимален, но не больше размера дискеты ~1450k). Эти отобранные файлы программа должна переместить в папку disk1, и так далее. И хотелось быть уверенным, что количество дискет действительно минимально.

Всего записей: 75 | Зарегистр. 08-11-2005 | Отправлено: 13:37 28-03-2006
SergPfor



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Зравствуйте.
Не правильно работают операторы сравнения (LSS...) в команде IF при использовании с большими числами (гигабайты). Помогите разобраться.
Есть задача определить размер файла и сравнить его с заданным порогом, при превышении которого необходимо сделать некоторое действие. С размером не сложно, а со сравнением не получается.

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
seggah
Решить задачу минимизации на .bat - это действительно круто
Если чуть упростить условие:
1. Отсеять файлы заведомо (по размеру) не влазящие на дискету
2. Копировать на дискету (disk№) файлы начиная с самого большого, а затем меньше по размеру, как только дискета заполняется перейти к началу этой процедуры
3. Так пока все файлы не кончаться
 
PS. скажи зачем это надо, может быть получиться более другие способы
 
Добавлено:
SergPfor

Код:
 
@Echo Off
If 3000000000 LSS 2000000000 (
Echo LSS
) Else (
Echo GTR
)
 

Работает на ура
 
Приведи свой батник

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Не разобрался, как вставлять код.  
В общем задача проверить размер файла бд echange, записать его и при превышении порога свиснуть
Сейчас реальный размер базы чуть более 9 Гб.
 
@echo off
set pdbpriv=\\Srv3\D$\exchsrvr\MDBDATA\PRIV.EDB
for %%I in (%pdbpriv%) do set sof=%%~zI
if %sof% lss 14000000000 goto stat
net send c01 Размер БД %pdbpriv% превысил порог и равен %sof%
:stat
for /f "tokens=2,3,4 delims=. " %%I in ('date /t') do set dd=%%I& set mm=%%J& set _ gg=%%K
for /f %%I in ('time /t') do set tm=%%I
 
if %dd%%mm%==3112 ren dbprivesize.txt dbprivesize%gg%.txt
echo %dd%.%mm%.%gg% %tm% %sof%>> dbprivesize.txt

Всего записей: 6 | Зарегистр. 28-03-2006 | Отправлено: 16:10 28-03-2006
Niklas



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго здравия!
Помогите, пожалуйста, создать BAT файл для подключения VPN соединения. Хотелось бы, чтоб этот файл запускался при загрузки системы (типа включил комп и всё работает) Опишите поподробней, где что писать.  
P.S Видел пример кода на 29 странице, только что-то у меня он не сработал.

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SergPfor
Работает все ОК
Даже если размер превышает на 1 байт ссобщение идет
А вчем у тебя проблема?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:53 28-03-2006
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergPfor
LSS сравнивает числа как 32-х битные.
Убери последние три цифры через set sof=%sof:~0,-3% и, если получилась не пустая строка, сравнивай с 14млн.

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 20:33 28-03-2006 | Исправлено: Refugee, 03:14 29-03-2006
SergPfor



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
У меня w2000 adv server. if 9161416704 LSS 14000000 goto stat - по  метке не переходит, работет по следущей команде, т.е. свисток
А вот по совету Refugee кажется работает. Спасибо.
 
 
Добавлено:
KapralBel
Ошибся, в посте выше используется if 9161416704 LSS 14000000000 goto stat.

Всего записей: 6 | Зарегистр. 28-03-2006 | Отправлено: 10:27 29-03-2006
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALL
Простой батничек выполняю на нескольких одинаковых машинах c WinXP.
Код:
@echo off
echo Y|SCHTASKS /Delete /TN "*"
if errorlevel 1 goto end
SCHTASKS /Create /RU "" /SC MINUTE /MO 5 /TN "RCall" /TR "C:\scripts\RCall.vbs"
SCHTASKS /Create /RU "" /SC DAILY /MO 1 /ST 04:00:00 /TN "reboot" /TR "C:\scripts\reboot.cmd"
:end
На большинстве все срабатывает без проблем, на некоторых вдруг заявляет что
"Команда SCHTASKS не может выполняться из пакетного файла"
Так и приходится копировать строки из батника и запукать их с ком.строки
Что за хрень ??? Как победить ???

----------
Интересно только неизведанное...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 15:48 29-03-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Возникла задача (практически олимпиадная , так как основной критерий скороть выполнения):
 
есть 2 файла нужно получить файл со строками которые: отсутствуют в 1 но есть во 2 и наоборот. порядок строк в искодных файлах может не совпадать. (размер файлов ~20-30мб)
 
(в принципе можно использовать доп. утилиты,  вроде unxutils (если понадобятся))
 
Есть решение на VB, но оно не работает через ком.строку (время сравнения на 28мб - 1.10.)
 
 
 
 
 

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 11:37 30-03-2006 | Исправлено: uZver, 16:16 30-03-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uZver
а чем тебе fc не подходит?  
Правда он кажись очень реагирует на порядок строк.

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 13:39 30-03-2006
uZver



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

Цитата:
Правда он кажись очень реагирует на порядок строк.  

 
и собственно этим и не подходит (к сожаленью этим грешат все(которые я смог попробовать) проги по сравнению файлов)

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 13:52 30-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
uZver
На батнике такое сравнение будет работать крайне медленно, попробуй для начало просто вывести на экран такой файл обычным перебором строк
 
Кстати предварительная сортировка допускается?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:07 30-03-2006
uZver



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

Цитата:
на экран такой файл обычным перебором строк

мне всегда казалось что отображения работы тормозит процесс
вот и сейчас вывод на экран - ~12.20
вывод в файл - ~7.20.
Вообщем если на сравнение будет тратится 15-20 минут, но при этом не придется в нем активно участвовать - то это вполне приемлемо  
 

Цитата:
Кстати предварительная сортировка допускается?  

автоматизированная? Допускается(только как?).  
 

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 17:18 30-03-2006 | Исправлено: uZver, 17:19 30-03-2006
KapralBel



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

Код:
 
@Echo Off
Sort File1.txt /o file1.srt
Sort File2.txt /o file2.srt
FC file1.srt file2.srt >difference.txt
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:32 30-03-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а я не знал про sort
 
KapralBel
Спасибо.  
Работает влет (35 сек на 28 мб), но ...
sort не различает строчные и заглавные буквы, а fc соответственно считает их различными (как раз такой вариант попался ), отключил проверку в fc (/c), для моих нужд хватит.
 
Осталось только разобрать difference.txt, и вытащить от туда только нужные строки.  
 
 
ЗЫ: может кто знает "сравниловки" дающие в протокол только расхождения?
 
Добавлено:
вопрос про разбор результата решился использование diff (из unxutils) (формат протокола легче)

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 18:28 30-03-2006
mixams



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем ... НароД... есть задачка по слоЖнее ... моЖь кто помоЖет ...
Вообщем текст самой задачи ....
НуЖно соЗдать папки на Диске .... таким Образом что БЫ . получилась такая конструкция с  папками   то есть в таком виде допустим создавалИсь каталоги : a,b,c,d,..... и так далее .... потом в ЭтиХ же каталогаХ соЗдаваЛись бы такие же файлы(папки) От а...... z ....  короч говоря  все По ЦикЛУ.... (4-х уровневый результат )
(не понимаю как мне Это все Осуществить ....поЭтому пРошу помоЩи у вас ....) НароД помоГите еслИ у кого Есть несколько минут Лишнего времени ...
 
Вижу что тема актуально развивается ....Бат файлы оченЬ удОбны ... Хочу научиться ...но и от помоЩи не ОткаЖусь...





п. 2.5.4. главы VIII Соглашения по использованию

Всего записей: 15 | Зарегистр. 18-01-2005 | Отправлено: 21:38 30-03-2006 | Исправлено: evle, 05:20 31-03-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