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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

   

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 4
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
 
 
Старая версия первого сообщения

Всего записей: 11452 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Master_Alex



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VAbramyak
Ну просто создать последовательно, а не сразу.

Всего записей: 525 | Зарегистр. 11-09-2003 | Отправлено: 00:46 10-04-2006
Randall



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, подскажите, плиз, как наиболее просто решить такую задачку:
Есть в сетке 2 сервера. На одном лежат документы юзверей, разбитые на 8 папок по названиям подразделений. На другой сервер каждую ночь эти документы архивируются в соответствующие папочки и хранятся неделю. Все "предыдущие" должны удаляться...
Я сделал батничек, который запускается каждую ночь и делает следующее:
1. Удаляет во всех этих папках временные (баки, темпы и т.д....), а также мультимедийные файлы (такова политика).
2. Архивирует раром содержимое каждой из 8 папок в файл формата YYYY-MM-DD.rar (т.е., дата, собственно...) и ложит его в соответствующие папки на второй сервак.
Все это сделано с помощью стандартных "досовских" команд без скриптов и т.п.
Теперь надо сделать так, чтоб этот же батник по окончании создания каждого архива удалял "старые" архивы на сервере 2. Повторюсь, старыми считаются файлы, дата создания которых более 7 дней от "сегодняшнего" дня. Дату файла можно взять как из имени, так и из атрибутов.
Как я понимаю, "стандартными" командами это реализовать низзя... Или я ошибаюсь?
Т.е. вопрос, собсно, звучит так: как сделать такую "чистку" наиболее просто. Вся пакость в том, что от скриптов я далековат...
Подскажите, плиз, как это можно сделать???

Всего записей: 8 | Зарегистр. 11-04-2006 | Отправлено: 16:49 11-04-2006 | Исправлено: Randall, 16:56 11-04-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Randall
посмотри на этот скрипт: мне помагает. оставляет нужное кол-во файлов
Задачи на bat-файлах

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



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сенкс, сейчас покопаю...

Всего записей: 8 | Зарегистр. 11-04-2006 | Отправлено: 12:09 12-04-2006
Randall



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2 jak_forest:
Спасибо, "заточил" под себя, работает
Токка одно "но"... Можешь объяснить смысл этой строки в проге:

Цитата:
set path_to_scan="%path_to_scan:"=%"

Чет я не пойму, что она делает...
С ней FOR тупо стопорится, т.к. вместо пути dir-у подставляется текстовая строка вместе с кавычками и пробелом в конце.... Прибил эту строчку и все пучком!

Всего записей: 8 | Зарегистр. 11-04-2006 | Отправлено: 18:12 12-04-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Randall
что-то было с кавычками, но что не помню. скорее всего убирала граничные кавычки из пути
у меня все работало и так
возможно просто эта строка никогда не отрабатывала.

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 15:48 13-04-2006
FormatCvt



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините, я не большой спец, но может и мой метод кому-то пригодится.
 

Цитата:
Теперь надо сделать так, чтоб этот же батник по окончании создания каждого архива удалял "старые" архивы на сервере 2. Повторюсь, старыми считаются файлы, дата создания которых более 7 дней от "сегодняшнего" дня.

 
У себя сделал так:
В папке, куда валятся бэкапы (архивы RAR) сделал 7 папок с именами 1, 2, ...7.  
Туда же кинул файл с именем 1.txt  
 
Ну дальше понятно:
 

Код:
 
if exist 1.txt goto p1
if exist 2.txt goto p2
if exist 3.txt goto p3
if exist 4.txt goto p4
if exist 5.txt goto p5
if exist 6.txt goto p6
if exist 7.txt goto p7
:p1
del 1\*.rar
move *.rar 1\
ren 1.txt 2.txt
goto end
:p2
del 2\*.rar
move *.rar 2\
ren 2.txt 3.txt
goto end
:p3
del 3\*.rar
move *.rar 3\
ren 3.txt 4.txt
goto end
:p4
del 4\*.rar
move *.rar 4\
ren 4.txt 5.txt
goto end
:p5
del 5\*.rar
move *.rar 5\
ren 5.txt 6.txt
goto end
:p6
del 6\*.rar
move *.rar 6\
ren 6.txt 7.txt
goto end
:p7
del 7\*.rar
move *.rar 7\
ren 7.txt 1.txt
:end
 

 
В результате - в каждой папке (1-7) лежат архивы за один день недели.
На другом серваке (по такой же методе) хранятся бэкапы 14 дней.

Всего записей: 87 | Зарегистр. 18-04-2006 | Отправлено: 14:21 18-04-2006 | Исправлено: FormatCvt, 14:32 18-04-2006
Nicka_Grey

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Такой вопорс, можно ли как то в батнике написать смену видеорежима моника, с текущего на например 1024Х768 32бита цветность 85Гц ?

Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 16:13 26-04-2006
KapralBel



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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плз, есть ли утилита, которая по 2000-ым проверяла, запущен ли сервис с заданным именем или нет? Мне в батнике нужен цикл, который после net start или net stop ожидал завершения процесса.

Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 13:19 27-04-2006
anzor

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужен батник на 2003:
1.запуск интернет соединения
2.запуск ехе файла
3.кликание на кнопку
4.выключение компа
 
Заранее спасибо!

Всего записей: 7 | Зарегистр. 27-04-2006 | Отправлено: 13:41 27-04-2006
kiba

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть батник, который запускается как сценарий при выключении компьютера.
Его смысл - копия базы в конце рабочего дня.
 Как в батнике проверить текущее время и отрабатывать только после определенного времени (например только после 17.00)? Вроде есть time /t только как ее использовать для сравнения?

Всего записей: 10 | Зарегистр. 22-01-2003 | Отправлено: 14:13 27-04-2006
Smitis



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

Цитата:
Подскажите плз, есть ли утилита, которая по 2000-ым проверяла, запущен ли сервис с заданным именем или нет? Мне в батнике нужен цикл, который после net start или net stop ожидал завершения процесса.

Ну, например, как вариант sc.exe - в 2000 по умолчанию нет, но можно взять из reskit-а или из XP/2003.
sc.exe query имя_сервиса
и проанализировать вывод
 
 
Добавлено:
kiba

Цитата:
Как в батнике проверить текущее время и отрабатывать только после определенного времени (например только после 17.00)? Вроде есть time /t только как ее использовать для сравнения?

if %time:~0,2%%time:~3,2%%time:~6,2% gtr 170000 echo что_то_делать_после_пяти_часов
Внимание! Условие не сработает, если юзер задержался на работе до полуночи!

Всего записей: 3457 | Зарегистр. 09-02-2003 | Отправлено: 14:20 27-04-2006 | Исправлено: Smitis, 14:30 27-04-2006
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня команда sc query "InterBase Guardian" выдает вот чего
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:
Почему?

Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 15:03 27-04-2006
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Aladdinych
Потому что надо
sc query InterBaseGuardian
Внутренее имя сервиса (которое в реестре) может отличаться от выводимого в оснастке в колонке "Name"!

Всего записей: 3457 | Зарегистр. 09-02-2003 | Отправлено: 15:19 27-04-2006
Nicka_Grey

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KapralBel
А можешь немного подробней, хоть в двух словах. Пару раз когда давно запускал ее, но как можно сделать батничек для решения моей задачи, что то никак не соображу...

Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 16:27 27-04-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Nicka_Grey
Я тоже давненько запускал её
Но где-то она позволяет  создать ярлык - для изменения разрешения/частоты
И в ярлыке указаны параметры комм.строки для изменения

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

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KapralBel
Такс, спасибо за намек, пошел запускать еще пару раз
 
Добавлено:
KapralBel
Кое что нашел, но всеже не то что мне нужно было.
Нашел другой способ.
Намного удобней, как для меня
Оказывается друг когда то написал малюсенькую консольную утиль как раз для такой задачи.
Вот ее и юзать буду.
Еще раз спасибо.

Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 18:07 27-04-2006
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плз:
1. подойдет ли для Win 2000 Server sc.exe от Win XP.
2. Можно ли запустить sc stop <service> из батика так, чтобы управление в батик возвращалось после того как сервис остановлен.
 
Добавлено:
есть ли у sc коды возврата, что проверять через переменную errorlevel?

Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 08:59 28-04-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Nicka_Grey
Выложи куда либо эту утиль. Плиз

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:33 28-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru