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

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



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Den_Klimov
Ну, вторая задача - в общем решена...
Смотрим здесь... и критикуем/задаем вопросы....

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 03:48 02-10-2006
Belousov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как БАТ-ником узнать состояние сетевого принтера до старта системы, то-есть, что-бы комп писал сообщение типа "Принтер на таком -то рабочем месте неработает" и негрузился пока принтер не будет готов? Помогите плиз! win 2000pro

Всего записей: 86 | Зарегистр. 06-03-2006 | Отправлено: 17:29 02-10-2006 | Исправлено: Belousov, 18:36 02-10-2006
uart78

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно с помощью батника подключать и отключать Ethernet подключение по локальной сети.
С помощью rasdial не получается.  
rasdial подходит только для подключений удаленного доступа

Всего записей: 21 | Зарегистр. 15-08-2005 | Отправлено: 17:36 02-10-2006
Den_Klimov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Спасибо огромное за помощь! Сейчас не могу, но где-то через полчаса я сяду и буду думать/смотреть.
А первую задачу можно как-то решить?

Всего записей: 317 | Зарегистр. 27-02-2006 | Отправлено: 18:02 02-10-2006 | Исправлено: Den_Klimov, 18:03 02-10-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Den_Klimov
В 1-м - там коллизии могут быть...
 
1)
В каталоге А есть файл Test.txt
В каталоге B есть каталог Test.txt
В общем случае - в одном каталоге так называется файл, в другом - подкаталог.
 
2)
В каталоге А есть подкаталог Test (пустой)
В каталоге B есть подкаталог Test (не пустой)
В общем случае - не совпадение содержимого подкаталогов...
 
Вопрос (извечный ) - "Что делать?"
 
Добавлено:
Всё, второй вопрос снялся (прочитал разъясненния)... Да, похоже -  и первый тоже....

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 18:14 02-10-2006
uart78

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

Цитата:
а если в результате появляется 691 ошибка, уже ни как не исправить?

 
Я так понял rasdial подходит только для подключений удаленного доступа, типа диалап.
Для высокоскоростных судя по всему rasdial не подхолит .  Ты наверное , как и я хочеш использовать  именно с таким подключением?
 

Всего записей: 21 | Зарегистр. 15-08-2005 | Отправлено: 18:33 02-10-2006
Den_Klimov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Будь другом сделай, а? Буду ну ОЧЕНЬ благодарен.
Проси если чего будет надобно.
--------
PS.
К слову. Строки искомых батников Задача1 и Задача2 я планирую использоваться в одном едином батнике install.cmd, к тому же многократно дублируя (по нескольку раз испольуя одни и те же блоки команд Задача1 и Задача2 для разных каталогов) - блоки Задача1.1, Задача1.2, Задача1.3, Задача2.1, Задача2.2, Задача2.3, Задача2.4, Задача2.5. Фактически разница будет только в каталогах "a", "b", "c". Они каждый раз будут различатся от блоку к блоку. Все остальные команды блока будут одинаковы (лишь иногда я буду убирать команду резервного копирования в каталог "c").
Нельзя ли сделать так, чтобы было условие: если каталог "а" не существует или существует но без объектов (файлов и папок) указанных в задаче1 или задаче2 (объекты в задачах разные), то дальнейший блок команд задачи1 или задачи2 не выполнялся бы, а батник (install.cmd) сразу бы переходил к последующим командам и блокам команд указанных в install.cmd (если они есть)?
Дополнительно в батник install.cmd кроме этих блоков будут добавляться также и некоторые другие команды и блоки команд.
Суть в том, что я хочу сделать простой удобный инсталлятор на основе самораспаковывающихся архивов и батников.
Я давно использую самораспаковывающиеся архивы и практически уже давно решил остальные вопросы.
Ну... Не я решил а мой знакомый, который также этим занимается.
Всё упиралось в недостаточное знание - мы не могли написать нужный bat-ник. И наличие искомых блоков команд для выполнения Задача1 и Задача2 в рамках install.cmd практически полностью бы решило все остающиеся вопросы.
 
Поэтому очень тебя прошу Кирил, помоги пожалуйста и с первой задачей. Я в долгу точно не останусь!
--------
Интересно, а твой батник работает в Win2003 или только в XP? Сейчас тестить начну, но к сожалению Win2003 у меня пока нет.

Всего записей: 317 | Зарегистр. 27-02-2006 | Отправлено: 20:10 02-10-2006 | Исправлено: Den_Klimov, 22:46 02-10-2006
kovdaev

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите создать бат файл выполняющий следующее:
есть архивы rar (1.rar, 2.rar), имеется список list.txt (список содержит имена этих файлов), нужно проверить файлы на ошибку (ошибка CRC), в случае если присуствует, файл удалить, и удалить имя этого файла из списка).

Всего записей: 9 | Зарегистр. 10-10-2005 | Отправлено: 20:33 02-10-2006
Geriv



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый!
Помогите пожалуйста решить следующую задачу.
 
Есть каталог в сети, в котором куча подкаталогов.
Требуется периодически проверять все вложенные каталоги на наличие  
каких либо файлов и в случае наличия (и только наличия) хотя бы одного файла - определять владельца данного файла или файлов, с указанием полного пути к файлу.  Ранее делалось батником, который запускался шедулером, строчками типа – if exist  диск:\путь\каталог\*.* dir …. >> диск:\logs\own.dir, а сейчас под другой осью (W2K3), это уже работает некорректно.  
 
Пробовал циклом FOR /R, но тогда идет дублирование команды dir в зависимости от количества файлов в подкаталоге.
(For /R  h:\1\2 %%a In (*.*) Do dir %%~dpa >> I:\3\own.dir)
Пробовал также другие вариации с (*.*) с циклом FOR, но он срабатывает в холостую даже при отсутствии файлов, что избыточно или получается уж больно громоздкий батник.
 
Вроде простая задача, а пути не вижу.

Всего записей: 42 | Зарегистр. 19-01-2004 | Отправлено: 21:01 02-10-2006 | Исправлено: Geriv, 21:02 02-10-2006
Shish_kebab



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Посмотрел .....
nightlight
И сделал следующее
 
set T_Date1=%DATE%  
set T_Date=%T_Date1:~-11%
 
Пока работает, вырезает из даты всё что нужно, но почему 10 не вырезает непойму, ведь ХХ.ХХ.ХХХХ - это 10 символов ..... Или я чего то недогоняю?

Всего записей: 372 | Зарегистр. 14-07-2005 | Отправлено: 00:28 03-10-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Geriv
For /R  h:\1\2 %%A In (*.*) Do (echo %%~ftzaA >> I:\3\own.dir)
Но как здесь владельца определить (или как его определить через DIR) - увы, не знаю...
 
Shish_kebab
Возможно, что в Win'2000 в %DATE% последний символ - пробел???

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 01:23 03-10-2006
Den_Klimov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Пока твой батник у меня не работает, к сожалению. Я правда пытаюсь использовать пути с пробелами. Может в этом дело. Но как же их не использовать...
Щас попробую понять на каком этапе возникают проблемы...
Так. Когда бути без пробелов то вроде всё ОК. Уже проверил. А вот когда путь длинный с пробелами...

Всего записей: 317 | Зарегистр. 27-02-2006 | Отправлено: 01:26 03-10-2006 | Исправлено: Den_Klimov, 01:32 03-10-2006
Kirillhome



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

Цитата:
Нельзя ли сделать так, чтобы было условие: если каталог "а" не существует или существует но без объектов (файлов и папок) указанных в задаче1 или задаче2 (объекты в задачах разные), то дальнейший блок команд задачи1 или задачи2 не выполнялся бы, а батник (install.cmd) сразу бы переходил к последующим командам и блокам команд указанных в install.cmd (если они есть)?  

 

Код:
 
set /a all_razm=0
for /r %Catalog1% %%D in (*.*.) do (set /a all_razm+=1)
if "%all_razm%"=="0" GOTO :EOF
 

Т.е. если каталог Catalog1 не существует или пустой - то "идём на выход"
 
 
Т.н. "первый" батник - возможно, сделаю завтра-послезавтра (если никто не опередит )

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 01:32 03-10-2006
Den_Klimov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Спасибо огромное!
Но что всё-таки делать если пути к каталогам а также файл-спискам имеют пробелы?

Всего записей: 317 | Зарегистр. 27-02-2006 | Отправлено: 01:35 03-10-2006 | Исправлено: Den_Klimov, 01:36 03-10-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Den_Klimov
Похоже, понимаю, о чем говоришь....
Изменял
Код:
 
Set Cat_1=E:\FOR_FTP\Flash\
Set Cat_2=D:\Temp\Den.1\
Set Cat_3=D:\Temp\Den.2\
 
на что-то другое? А на что?
 
Если на что-то такое

Код:
 
Set Cat_1=%1
Set Cat_2=%2
Set Cat_3=%3
 
,  то тогда нужен пример запуска.... (Ну, или, скорее всего "отбросить" кавычки у передаваемых параметров)

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 01:38 03-10-2006
Den_Klimov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Я изменял на что-то вроде этого.
Set Cat_1="%~dp0\Files\Sys Windir\"
Set Cat_2="%SystemRoot%\"
Set Cat_3="%~dp0\Uninst\Files\Sys Windir\"
 
rem Описали временные файлы, которые нам понадобятся
Set File1="%~dp0\Files\SysWindir1.txt1"
Set File2="%~dp0\Files\SysWindir2.txt2"
 
А потом снова изменял и снова. И вс ещё продолжаю изменять пытаясь понять почему не работает.
Я ставлю везде кавычки потому что путь может и даже есть с пробелами.

Всего записей: 317 | Зарегистр. 27-02-2006 | Отправлено: 01:43 03-10-2006 | Исправлено: Den_Klimov, 01:49 03-10-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Den_Klimov
В наименованиях каталогов кавычки лишние - точно!
В файлах.... В файлах - нужны!
 
P.S. Может - в приват "отладку" перенесём? Я думаю, этот "чат" мало кому интересен (и будет полезен)...

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 01:56 03-10-2006
Den_Klimov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kirillhome
Да, я это уже опытным путём вычислил. Спасибо.
И ты прав. Отладку лучше в приват, в переписку и в IM-общение перенести.
 
Кстати. Уже нашёл проблему - смотри мои сообщения.

Всего записей: 317 | Зарегистр. 27-02-2006 | Отправлено: 02:06 03-10-2006 | Исправлено: Den_Klimov, 05:18 03-10-2006
GOODmen



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для контроля и логирования из одного батника (start.bat) командой arh.bat >> arh.log запускается другой (с командами для RAR), производящий архивирование, при этом окно второго не видно, видимо работает где-то в фоне. Подскажите, как сделать видимым второе окно (процесс архивации длительный и иногда хотелось бы видеть что происходит "онлайн") и чтобы все что делает второй батник также записывалось в лог.

Всего записей: 366 | Зарегистр. 15-01-2004 | Отправлено: 07:44 03-10-2006 | Исправлено: GOODmen, 07:45 03-10-2006
mrmarvin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите как можно из консоли у папки "Мои документы" поменять размещение примерно на \\server\usгsername
 
где username - имя залогиневшегося пользователя

Всего записей: 92 | Зарегистр. 26-04-2005 | Отправлено: 08:43 03-10-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