Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: Randall
Дата сообщения: 11.04.2006 15:49
Люди, подскажите, плиз, как наиболее просто решить такую задачку:
Есть в сетке 2 сервера. На одном лежат документы юзверей, разбитые на 8 папок по названиям подразделений. На другой сервер каждую ночь эти документы архивируются в соответствующие папочки и хранятся неделю. Все "предыдущие" должны удаляться...
Я сделал батничек, который запускается каждую ночь и делает следующее:
1. Удаляет во всех этих папках временные (баки, темпы и т.д....), а также мультимедийные файлы (такова политика).
2. Архивирует раром содержимое каждой из 8 папок в файл формата YYYY-MM-DD.rar (т.е., дата, собственно...) и ложит его в соответствующие папки на второй сервак.
Все это сделано с помощью стандартных "досовских" команд без скриптов и т.п.
Теперь надо сделать так, чтоб этот же батник по окончании создания каждого архива удалял "старые" архивы на сервере 2. Повторюсь, старыми считаются файлы, дата создания которых более 7 дней от "сегодняшнего" дня. Дату файла можно взять как из имени, так и из атрибутов.
Как я понимаю, "стандартными" командами это реализовать низзя... Или я ошибаюсь?
Т.е. вопрос, собсно, звучит так: как сделать такую "чистку" наиболее просто. Вся пакость в том, что от скриптов я далековат...
Подскажите, плиз, как это можно сделать???
Автор: jak_forest
Дата сообщения: 12.04.2006 07:52
Randall
посмотри на этот скрипт: мне помагает. оставляет нужное кол-во файлов
Задачи на bat-файлах
Автор: Randall
Дата сообщения: 12.04.2006 11:09
Сенкс, сейчас покопаю...
Автор: Randall
Дата сообщения: 12.04.2006 17:12
2 jak_forest:
Спасибо, "заточил" под себя, работает
Токка одно "но"... Можешь объяснить смысл этой строки в проге:

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

Чет я не пойму, что она делает...
С ней FOR тупо стопорится, т.к. вместо пути dir-у подставляется текстовая строка вместе с кавычками и пробелом в конце.... Прибил эту строчку и все пучком!
Автор: jak_forest
Дата сообщения: 13.04.2006 14:48
Randall
что-то было с кавычками, но что не помню. скорее всего убирала граничные кавычки из пути
у меня все работало и так
возможно просто эта строка никогда не отрабатывала.
Автор: FormatCvt
Дата сообщения: 18.04.2006 13:21
Извините, я не большой спец, но может и мой метод кому-то пригодится.


Цитата:
Теперь надо сделать так, чтоб этот же батник по окончании создания каждого архива удалял "старые" архивы на сервере 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
Автор: Nicka_Grey
Дата сообщения: 26.04.2006 15:13
Такой вопорс, можно ли как то в батнике написать смену видеорежима моника, с текущего на например 1024Х768 32бита цветность 85Гц ?
Автор: KapralBel
Дата сообщения: 26.04.2006 16:02
Nicka_Grey

Посмотри в сторону PowerStrip
Автор: Aladdinych
Дата сообщения: 27.04.2006 12:19
Подскажите плз, есть ли утилита, которая по 2000-ым проверяла, запущен ли сервис с заданным именем или нет? Мне в батнике нужен цикл, который после net start или net stop ожидал завершения процесса.
Автор: anzor
Дата сообщения: 27.04.2006 12:41
Нужен батник на 2003:
1.запуск интернет соединения
2.запуск ехе файла
3.кликание на кнопку
4.выключение компа

Заранее спасибо!
Автор: kiba
Дата сообщения: 27.04.2006 13:13
Есть батник, который запускается как сценарий при выключении компьютера.
Его смысл - копия базы в конце рабочего дня.
Как в батнике проверить текущее время и отрабатывать только после определенного времени (например только после 17.00)? Вроде есть time /t только как ее использовать для сравнения?
Автор: Smitis
Дата сообщения: 27.04.2006 13:20
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 что_то_делать_после_пяти_часов
Внимание! Условие не сработает, если юзер задержался на работе до полуночи!
Автор: Aladdinych
Дата сообщения: 27.04.2006 14:03
У меня команда sc query "InterBase Guardian" выдает вот чего
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:
Почему?
Автор: Smitis
Дата сообщения: 27.04.2006 14:19
Aladdinych
Потому что надо
sc query InterBaseGuardian
Внутренее имя сервиса (которое в реестре) может отличаться от выводимого в оснастке в колонке "Name"!
Автор: Nicka_Grey
Дата сообщения: 27.04.2006 15:27
KapralBel
А можешь немного подробней, хоть в двух словах. Пару раз когда давно запускал ее, но как можно сделать батничек для решения моей задачи, что то никак не соображу...
Автор: KapralBel
Дата сообщения: 27.04.2006 15:58
Nicka_Grey
Я тоже давненько запускал её
Но где-то она позволяет создать ярлык - для изменения разрешения/частоты
И в ярлыке указаны параметры комм.строки для изменения
Автор: Nicka_Grey
Дата сообщения: 27.04.2006 17:07
KapralBel
Такс, спасибо за намек, пошел запускать еще пару раз

Добавлено:
KapralBel
Кое что нашел, но всеже не то что мне нужно было.
Нашел другой способ.
Намного удобней, как для меня
Оказывается друг когда то написал малюсенькую консольную утиль как раз для такой задачи.
Вот ее и юзать буду.
Еще раз спасибо.
Автор: Aladdinych
Дата сообщения: 28.04.2006 07:59
Подскажите плз:
1. подойдет ли для Win 2000 Server sc.exe от Win XP.
2. Можно ли запустить sc stop <service> из батика так, чтобы управление в батик возвращалось после того как сервис остановлен.

Добавлено:
есть ли у sc коды возврата, что проверять через переменную errorlevel?
Автор: KapralBel
Дата сообщения: 28.04.2006 09:33
Nicka_Grey
Выложи куда либо эту утиль. Плиз
Автор: Nicka_Grey
Дата сообщения: 28.04.2006 09:54
KapralBel
ОК
Сейчас только поинтересуюсь у автора, не против ли
Автор: igor_andreev
Дата сообщения: 28.04.2006 11:25
Nicka_Grey
KapralBel
А консольных тулз для смены разрешения экрана полно в инете.
QRes http://home.no/aksoftware/
ResChange http://www.12noon.com/reschange.htm
MultiRes http://www.entechtaiwan.com/util/multires.shtm
Nircmdc http://www.nirsoft.net/utils/nircmd.html
еще какие то есть, но не помню где
Автор: Hrist
Дата сообщения: 01.05.2006 16:48
тупой вопрос но все же

как создать папку с именем прошлого месяца?
Автор: volodyalipkin
Дата сообщения: 01.05.2006 20:04
Hrist
echo %date:~4,2% или echo%date:~6,2% вернет номер месяца. ( Зависит от региональных настроек).
Дальше if ...
Автор: Nicka_Grey
Дата сообщения: 03.05.2006 14:38
volodyalipkin
А есть ли возможность получить дату в нужном формате, независимо от региональных настроек?
Автор: Smitis
Дата сообщения: 04.05.2006 08:35
Nicka_Grey

Цитата:
А есть ли возможность получить дату в нужном формате, независимо от региональных настроек?

Можно. Почитай сдесь подробно разбирали.
Автор: AleXeyS55
Дата сообщения: 05.05.2006 14:06
Задача встала такая: нужно на ПК с ОС 2000\ХР с помощью скрипта блокировать все записи в группе Администраторы кроме одной и сменить пароль этой одной записи, допустим пусть это будет запись admin.
Можете помочь?
Автор: scup
Дата сообщения: 06.05.2006 13:46
Как пронумеровать все строки в файле одним батником?
Автор: igor_andreev
Дата сообщения: 06.05.2006 13:59
scup
find /n /v "" < old.txt > new.txt

или FOR... прибавляй счетчик.
Автор: scup
Дата сообщения: 06.05.2006 14:55

Цитата:
или FOR... прибавляй счетчик
igor_andreev Угу, а как его прибавлять-то?



Добавлено:
find /n /v "" < old.txt > new.txt Способ хороший и красивый, но числа нужны без квадратных скобок, от них можно избавиться?
Автор: igor_andreev
Дата сообщения: 06.05.2006 17:12

Цитата:
Угу, а как его прибавлять-то?

Запусти два батника и найди отличие
1

Код:
@ECHO OFF

SET COUNT=

:_LOOP
SET COUNT=%COUNT%X
ECHO %COUNT%
IF NOT "%COUNT%"=="XXXXXXXXXXXXXXXXXXXX" GOTO :_LOOP

PAUSE

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.