Войти

Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов


Страниц : [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

0bject
01-11-2005, 16:17
Внимание!

В связи с созданием отдельного форума по скриптовым языкам, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь в написании батника". Это и так понятно :) Заголовок темы должен быть осмысленным.
[hr]

[hr]
Всех приветствую.
Задача следующая: смотрим в в каталог (например d:\dir\*.*) и если в нем сущетвуют файлы возраст которых более 40 дней, то отправляем email на указанный адрес.

0bject
01-11-2005, 16:26
.. и сразу еще
Нужно из скрипта создать дерево каталогов такого вида "d:\bak\compname\25.06.2006\" то есть "d:\bak\имя_компьтера\текущая_дата\".
Пробывал так: >mkdir d:\bak\%hostname%\%date% -- результат отрицательный.

Igor_I
01-11-2005, 21:36
Лично я бы поставил PHP5 через phpactionscript.dll и писал бы на нем. Благо PHP малость знаем.
Может конечно кто знает, как это сделать попроще.

ShaddyR
02-11-2005, 10:51
0bject: идея ясна. Посоветую альтернативный вариант: воспользоваться программой резервного копирования данных. Такой софт делает все это гибче и имеет больше возможностей, чем бат-файл.

0bject
02-11-2005, 11:35
спасибо за дельные советы

0bject
03-11-2005, 13:44
дело в том что скрипт будет выполняться на клиентских машинах, поэтому его реализацию необходимо свести к использованию стандартных средств

0bject
03-11-2005, 13:52
получилось следующее:
@title ???????? Backup started ...
@echo on
@cls
@color 06
@echo =============================================================
@echo == ==
@echo == Backups system for ???????????? ==
@echo == Created by Grigoriev Pawel aka 0bject ==
@echo == mailto: ??????@mail.ru ==
@echo == ==
@echo =============================================================
@echo .
@echo =============================================================
@echo ================== Start preparation ======================
@echo =============================================================
@rem color 08
@echo .
@echo -------------------------------
@echo --- Cleaning ...
@del d:\_backup\old\*.zip
@echo ------------- >> d:\_backup\backup.log
@echo start %date% %time% >> d:\_backup\backup.log
@echo cleaning %time% >> d:\_backup\backup.log
@echo -------------------------------
@echo --- Reservation old ...
@copy d:\_backup\*.zip d:\_backup\old\
@echo reservation %time% >> d:\_backup\backup.log
@echo -------------------------------
@echo --- Deletion ...
@del d:\_backup\*.zip
@echo deletion %time% >> d:\_backup\backup.log
@echo on
@cls
@color 06
@echo =============================================================
@echo ================= Start ??????? backup ====================
@echo =============================================================
@echo off
@color 03
"C:\Program Files\7-Zip\7z.exe" a -tzip "d:\_backup\??????_%date%.zip" -r "d:\??????????\*.doc" "d:\????????\*.xls" "d:\??????\*.rtf" -mx0 -p????????
@echo ???????bak %time% >> d:\_backup\backup.log
@echo on
@cls
@color 06
@echo =============================================================
@echo ================= Start ??????? backup ====================
@echo =============================================================
@echo off
@color 02
"C:\Program Files\7-Zip\7z.exe" a -tzip "d:\_backup\????????_%date%.zip" -r "c:\Program Files\???????\*" -mx0 -p??????????
@echo ????????? %time% >> d:\_backup\backup.log
@echo on
@cls
@color 01
@echo =============================================================
@echo ================== Start ??????? backup =====================
@echo =============================================================
@echo off
"C:\Program Files\7-Zip\7z.exe" a -tzip "d:\_backup\?????_%date%.zip" -r "d:\???????\*" -mx0 -p????????
@echo ????????? %time% >> d:\_backup\backup.log
net use t: /del /y
@echo ????????? %time% >> d:\_backup\backup.log
net use t: \\192.???.?.?\?????$ /user:???????? ?????????
@echo ???????? %time%>> d:\_backup\backup.log
del t:\melena\*.* /q
@echo startedcopytoserver %time%>> d:\_backup\backup.log
xcopy d:\_backup\*.* t:\?????\*.* /q /e /y
@echo deltempdisc %time% >> d:\_backup\backup.log
net use t: /del /y

Savant
03-11-2005, 15:38
0bject
Пропиши в начале @echo off , а в остальных местах echo (on/off) и собачек убери , а то от них галза разбегаются; echo с точкой пишется слитно.
зы: echo off никак не влияет на команду echo <строка> (в том плане , что перед ее использованием echo on не нужно)

Igor_I
03-11-2005, 20:16
дело в том что скрипт будет выполняться на клиентских машинах, поэтому его реализацию необходимо свести к использованию стандартных средств Так бы сразу и сказал, и я бы не лез со своими глупыми идеями.

hasherfrog
04-11-2005, 00:19
Savant
Процитирую (http://www.forum.oszone.ru/showthread.php?t=7841) себя, любимого :]
>> 2) По поводу огромного количества @ в скриптах. Да, я знаю про echo on/off. Просто так легче отлаживать скрипты - убрал @ где нужно, посмотрел эхо, потом вернул @ на место. Писать echo on, потом убирать... В общем, кто знает, тот поймёт.

0bject
06-11-2005, 13:14
ок, мотаю на ус ..

lehha
10-11-2005, 09:05
2 0bject
Так же после создания бэкапа, можешь отправлять его почтой, только поставь the bat! у него полная поддержка командной строки в хелпе по нему все хорошо описано

0bject
29-11-2005, 11:02
Спасибо, почтой льются только логи. А вообще очень рекомендую всем сисадминам посетить sysinternals.com, там широкий спектр всевозможных (грамотных) консольных утилит.

MonsterMax SPB
06-12-2005, 15:38
как в локальной сетке при условии что я везде на машинах являюсь админом удалить определенные файлы? Естественно при наличии их там. Самое сложное для меня не найти и удалить файл а как в скрипте задать чтоб он по всей подсетке пробежался и покилял?

ShaddyR
06-12-2005, 16:13
Раз такой тем есть..)
Господа BAT-о-программеры, подскажите такой вопрос: хочу с помощью батника пробегаясь по папкам юзеров ОС (с:\Doc&Sett\<Имя_Пользователя>\..), делать в них определенные действия (напр., чистить ТЕМРы). Подскажете, как это реализовать?

MonsterMax SPB
06-12-2005, 16:57
ShaddyR а ты всем в профилях настрой чтоб темпы складывались в %homedrive%/temp и чисти ее :)

ShaddyR
06-12-2005, 17:07
MonsterMax SPB: не пойдет. Темп я привел для примера, задача о другом.

hasherfrog
06-12-2005, 19:04
ShaddyR
На одной машине? Я имею в виду, профиля локальные? тогда может... Там же можно получить список директорий Dir-ом, перебрать его For-ом, и не трогать Default-а и Administrator-а

lehha
07-12-2005, 08:52
MonsterMax SPB
Если есть домен то проблем не возникнет просто поставь батник в политику чтоб он выполнялся при загрузки компутеров пользователей.
ShaddyR
%userprofile% - это все равно что c:\Documents and Settings\<имя пользователя>\
%alluserprofile% - это c:\Documents and Settings\All Users\
соответственно потом берешь любую папку которую тебе надо
%alluserprofile%\Рабочий стол :))

lehha
07-12-2005, 08:53
а вообще ты сам можещь задать для всех компов в своей подсети свои переменные среды, которые тебе просто облегчат в дальнейшем жизнь)




© OSzone.net 2001-2012