Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Здравствуйте!
Возникла такая проблема.
Я полный ноль в написании .bat файлов, но необходимо автоматизировать следующую задачу.
Каждый день создаётся новый архив данных. Срок хранения архива 7 дней. Поэтому необходимо, чтобы каждый день удалялись архивы недельной давности. Как это описать. Посмотрела команду Del, а там ничего такого нет.
2 ноя 06, 10:31    [3345532]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51778

наример так:
del arch7.zip
ren arch6.zip arch7.zip
ren arch5.zip arch6.zip
.... и т.д.
pkzip -add arch1.zip

Posted via ActualForum NNTP Server 1.3

2 ноя 06, 10:33    [3345549]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748

Зато там есть команда for и if
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

2 ноя 06, 11:05    [3345833]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748

я бы написал js файл для этого
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

2 ноя 06, 11:05    [3345841]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Dimitry Sibiryakov

наример так:
del arch7.zip
ren arch6.zip arch7.zip
ren arch5.zip arch6.zip
.... и т.д.
pkzip -add arch1.zip
Posted via ActualForum NNTP Server 1.3


Спасибо, идея хорошая. Но как раз проблема в названиях файлов. По регламенту, они обязаны создаваться в след. формате: например, exp_full_06_11_1, т.е. файл создан 1 ноября 2006 года. Сегодня будет создан новый как exp_full_06_11_2. Т.е. необходимо обработать название файлы, а именно его дату и сравнить с системной даты. Вычислить разницу и удалить файл недельной давности. Т.е. это моё представление алгоритма. Может, можно и по-другому как-то? А Java скрипты я писать не умею.
3 ноя 06, 11:11    [3351976]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Т.е. exp_full_06_11_1.rar
3 ноя 06, 11:13    [3351996]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Может, можно как-то получить доступ к свойству файла - дата создания, и как-нибудь обрабатывать её?
3 ноя 06, 12:43    [3352961]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
root_sql
Member

Откуда:
Сообщений: 65
Ksuha
Может, можно как-то получить доступ к свойству файла - дата создания, и как-нибудь обрабатывать её?


Можно воспользоваться VBS, задача похожая - удаляеет самые старые файлы из указанного какталога (не смотрит подкаталоги) если размер превышает указанный лимит в байтах, работает с названиями файлов вида dd.mm.yyyy (например 10.10.2006)
создать файл название.vbs и поместить код, который можно переработать и лишнее убрать:

DeleteFielesFromDir "C:\distr\папка1", "\\distr\\папка1", 55000000000, "."

Sub DeleteFielesFromDir(CurrentPatch, CurrentQuery, FolgerSize, LocalOrRemoteComputer)

Const OverwriteExisting = True
Const adVarChar = 200
Const MaxCharacters = 255

Set DataList = CreateObject("ADOR.Recordset")
DataList.Fields.Append "CreateDate", adVarChar, MaxCharacters
DataList.Fields.Append "CurrentPatch", adVarChar, MaxCharacters
DataList.Fields.Append "Sort", adVarChar, MaxCharacters
DataList.Open

Set objFSO = CreateObject("Scripting.FileSystemObject")
strComputer = LocalOrRemoteComputer


Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")


Set colFiles = objWMIService. _
ExecQuery("Select * from CIM_DataFile where Path ='\\"& CurrentQuery &"\\'")

Set objFolder = objFSO.GetFolder(CurrentPatch)

if objFolder.Size > 0 then
For Each objFile in colFiles

if LocalOrRemoteComputer <> "." then
objPath = objFile.Name
objPath = Replace(objPath, "c:\", "\\" & LocalOrRemoteComputer & "\")
Set objFile = objFSO.GetFile(objPath)
else Set objFile = objFSO.GetFile(objFile.Name)
End If

DataList.AddNew
DataList("CreateDate") = objFile.DateCreated
DataList("CurrentPatch") = objFile.Path
Str = objFile.DateCreated

Str = Replace(Str, ":", "")

Str_Split = Split(Str, " ")

Str_Beg = Str_Split(0)
Str_Date = Split(Str_Beg, ".")
Str_Beg = Str_Date(2)&Str_Date(1)&Str_Date(0)

Str_End = Str_Split(1)
if len(Str_Split(1)) = 5 then
Str_End = "0" & Str_End
end if

Str = Str_Beg & Str_End

DataList("Sort") = Str
DataList.Update
Next

DataList.MoveFirst
DataList.Update
DataList.Sort = "Sort"
DataList.MoveFirst
DataList.Update

Do Until DataList.EOF

if objFolder.Size > FolgerSize then
set objFile = objFSO.GetFile(DataList.Fields.Item("CurrentPatch"))
objFSO.DeleteFile(objFile.Path)
end if
DataList.MoveNext
Loop

End If
DataList.Close

End Sub

Ссылка в помощь http://www.microsoft.com/technet/scriptcenter/default.mspx
5 ноя 06, 20:13    [3358186]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7430
Ksuha
Здравствуйте!
Возникла такая проблема.
Я полный ноль в написании .bat файлов, но необходимо автоматизировать следующую задачу.
Каждый день создаётся новый архив данных. Срок хранения архива 7 дней. Поэтому необходимо, чтобы каждый день удалялись архивы недельной давности. Как это описать. Посмотрела команду Del, а там ничего такого нет.
Хе. Скажу Вам по секрету, что Оракл, помоему Ваш случай, умеет это делать сам (RMAN) и SQL Server тоже (Maintence plan).
5 ноя 06, 23:12    [3358393]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
В команде Delete можно использовать подстановочные символы "*", т.е. команда будет такая:
Del путь\exp_full*.*
Например
Del c:\temp\dayfiles\exp_full*.*
5 ноя 06, 23:34    [3358418]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
root_sql
Ksuha
Может, можно как-то получить доступ к свойству файла - дата создания, и как-нибудь обрабатывать её?


Можно воспользоваться VBS, задача похожая - удаляеет самые старые файлы из указанного какталога (не смотрит подкаталоги) если размер превышает указанный лимит в байтах, работает с названиями файлов вида dd.mm.yyyy (например 10.10.2006)
создать файл название.vbs и поместить код, который можно переработать и лишнее убрать:...



О, Мама Мия! Вы хотите, чтобы меня кондрашка хватила??? Я поняла одно, простого ничего придумать нельзя. Ладно, буду ручками делать. :((
7 ноя 06, 10:58    [3361806]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Relic Hunter
Ksuha
Здравствуйте!
Возникла такая проблема.
Я полный ноль в написании .bat файлов, но необходимо автоматизировать следующую задачу.
Каждый день создаётся новый архив данных. Срок хранения архива 7 дней. Поэтому необходимо, чтобы каждый день удалялись архивы недельной давности. Как это описать. Посмотрела команду Del, а там ничего такого нет.
Хе. Скажу Вам по секрету, что Оракл, помоему Ваш случай, умеет это делать сам (RMAN) и SQL Server тоже (Maintence plan).


Да, это действительно Оракл. А как Вы догадались???
7 ноя 06, 10:59    [3361815]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Biz©
Member

Откуда: Snezhinsk
Сообщений: 5687
Ksuha
Да, это действительно Оракл. А как Вы догадались???

а этот архив - не резервная ли копия базы ? ;)
7 ноя 06, 11:15    [3361956]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Biz©
Ksuha
Да, это действительно Оракл. А как Вы догадались???

а этот архив - не резервная ли копия базы ? ;)

ДА, это копия. А что, Вы хотите получить доступ?
7 ноя 06, 16:27    [3364140]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
Я специально для этих целей написал утилитку - расшириненние для команды dir, которая окоромя маски понимает также и даты. Соответсвенно в бат фале можно получить список файлов, дата модификации которых раньше чем семь дней назад. Потом файлы можно удалить согласно списка.
все наши на www.corba.kubsu.ru
7 ноя 06, 17:40    [3364801]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Biz©
Member

Откуда: Snezhinsk
Сообщений: 5687
Ksuha
Biz©
Ksuha
Да, это действительно Оракл. А как Вы догадались???

а этот архив - не резервная ли копия базы ? ;)

ДА, это копия. А что, Вы хотите получить доступ?

ну дык пользуйте штатные средства ... вам уже указали на RMAN и его возможности ...
7 ноя 06, 20:51    [3365504]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Ggg_old
Я специально для этих целей написал утилитку - расшириненние для команды dir, которая окоромя маски понимает также и даты. Соответсвенно в бат фале можно получить список файлов, дата модификации которых раньше чем семь дней назад. Потом файлы можно удалить согласно списка.
все наши на www.corba.kubsu.ru

Дайте точную ссылку, пожалуйста, пожалуйста.
9 ноя 06, 14:30    [3376138]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748

пример работы с коллекцией files

var fso,f,f1,fc,s;
fso=WScript.CreateObject("Scripting.FileSystemObject");
f=fso.GetFolder("C:\\");
fc=new Enumerator(f.files);
s="";
for(;!fc.atEnd();fc.moveNext())
{ s+=fc.item().":"+fc.item().DateCreated;
s+="\n";
}
WScript.Echo(s);
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

9 ноя 06, 14:48    [3376311]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748

var fso,f,f1,fc,s;
fso=WScript.CreateObject("Scripting.FileSystemObject");
f=fso.GetFolder("C:\\");
fc=new Enumerator(f.files);
s="";
for(;!fc.atEnd();fc.moveNext())
{
s+=fc.item()+":"+fc.item().DateCreated;
s+="\n";
}
WScript.Echo(s);
это пример работы с датой в js
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

9 ноя 06, 14:53    [3376383]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
klen_
Member

Откуда:
Сообщений: 2404
dim n, zapusk
n = WeekDay( date() )  ' номер дня недели
zapusk = "pkzip.exe -a ARXIV" & n & ".zip"
msgbox zapusk
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run zapusk

Этот текст сохрани в файле с расширением VBS
9 ноя 06, 15:14    [3376609]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
А существует ли какая-либо среда программирования для VBScript? Чтобы я могла набрать команду, нажать F1 и мне бы выдалась бы справка по этой команде или объекту? Чтобы там был Help? А то когда это дело пишешь в текстовом файле, потом компилируешь, и если он выдаёт ошибку, то узнать об этой ошибке что-либо, либо почитать справку нельзя.
13 ноя 06, 13:09    [3391238]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748

я не нашел, правда есть отладчик сценариев, но я обычно пишу скрипты на
javaScript в Dreamwer
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

13 ноя 06, 13:12    [3391272]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Green2

я не нашел, правда есть отладчик сценариев, но я обычно пишу скрипты на
javaScript в Dreamwer
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

Но должно же быть хоть что-то. А Яву я просто хуже понимаю.
13 ноя 06, 15:17    [3392394]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Ksuha
Member

Откуда: Москва
Сообщений: 34
Green2

пример работы с коллекцией files

var fso,f,f1,fc,s;
fso=WScript.CreateObject("Scripting.FileSystemObject");
f=fso.GetFolder("C:\\");
fc=new Enumerator(f.files);
s="";
for(;!fc.atEnd();fc.moveNext())
{ s+=fc.item().":"+fc.item().DateCreated;
s+="\n";
}
WScript.Echo(s);
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

А у тебя нет какой-либо документации по работе с FSO в Яве?
13 ноя 06, 15:19    [3392407]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация удаления файлов с помощью пакетного файла  [new]
Green2
Member

Откуда: skype: green2x2
Сообщений: 13748

Есть раздел в MSDN и кроме того документацию можно скачать отдельно.
--
Картинка с другого сайта.


Posted via ActualForum NNTP Server 1.3

14 ноя 06, 12:12    [3396698]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Windows Ответить