powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вот такой вопрос...
3 сообщений из 3, страница 1 из 1
Вот такой вопрос...
    #33143596
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зараннее извиняюсь потому как не в правильном месте помещаю, но если честно, не совсем представляю куда его втулить.

Значит так, написал BackupToDisk.bat файл для бэкапа.
/*
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i-%%j-%%k-%%l
for /f "Tokens=1" %%i in ('time /t') do set tm=-%%i
set tm=%tm::=-%
set dtt=%dt%%tm%
C:\WINDOWS\system32\ntbackup.exe backup "@C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\BackupToDisk.bks" /n "BACKUP %dtt%" /d "BACKUP %dtt%" /v:no /r:no /rs:no /hc:off /m normal /j "BackupToDisk" /l:s /f "d:\backuptodisk\BACKUP %dtt%.bkf
exit
*/

закинул его в фолдер c:\BackupBAT и привязал его в "Scheduled Tasks", что бы он мне с понедельника по субботу в 3 часа ночи всё это дело проворачивал.

Работает, сегодня утром получился "BACKUP Thu-06-30-2005-03-00.bkf" размером в 8G.

Проблема, что у меня на D:\ места от силы на 4 таких бэкапа.
Может кто то подскажет, как модифицировать мой .bat, что бы он
1. убирал с винта файлы у которых, грубо говоря "Date Modified" <
RelativeDate ( Now(), -4 )
2. имел ввиду, что с субботы на воскресение, и с воскресения на
понедельник, ничего не делалось.
3. когда я пытаюсь .bkf файл такого размера выбросить, винды мне говорят,
что в корсину он не поместитса и согласен ли я убрать его безвозвратно,
естественно этот MessageBox должен быть подавлен с дефолтом на Yes.

Буду очень признателен за любую инфу.
Спасибо
...
Рейтинг: 0 / 0
Вот такой вопрос...
    #33151572
Black Savage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я раньше тоже занимался этой проблемой. Но нам надо было копировать файлы из определенных директорий, не только бэкапы базы. До конца не дописал скрипт, т.к. перешли на ужасно убогую систему копирования. Вообщем, нашел я какой то кусок кода, относящийся к той моей работе. Глянь, может поможет:
Код: plaintext
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.
Dim SourcePath, DestinationPath
    
SourcePath = "D:\Work"
DestinationPath = "D:\Exchange\backup"

Directory(SourcePath, DestinationPath)
WScript.Quit

Sub Directory(SPath, DPath)
	
    Dim Dir As Boolean, f, fso, sf1, sf2, newName, CntFiles, CntFolders, ii, Msg
    Dim wshShell	' Scripting Shell Environment
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set wshShell = WScript.CreateObject("WScript.Shell")
    Set f = fso.GetFolder(SPath)
    CntFolders = f.SubFolders.Count
    ii =  0 
    For Each sf1 In f.SubFolders
        ii = ii +  1 
        newName = DPath + "\" + sf1.Name
        If fso.FolderExists(newName) = False Then
            fso.CreateFolder (newName)
        End If
        Dir = Directory(SPath + "\" + sf1.Name, DPath + "\" + sf1.Name)
        If ii >= CntFolders Then Exit For
    Next
    CntFiles = f.Files.Count
    ii =  0 
    For Each sf2 In f.Files
        ii = ii +  1 
        newName = DPath + "\" + sf2.Name
        On Error GoTo ErrorHandler
        If fso.FileExists(newName) = True Then
           If FileDateTime(newName) < FileDateTime(SPath + "\" + sf2.Name) Then
		wshShell.Run "xcopy " + SPath + "\" + sf2.Name + " " + DPath + "\" + sf2.Name + " /I/E/C/D/Y"
           End If
        Else
            wshShell.Run "xcopy " + SPath + "\" + sf2.Name + " " + DPath + "\" + sf2.Name + " /I/E/C/D/Y"
        End If
        If ii >= CntFiles Then Exit For
    Next
    Set fso = Nothing
    Set f = Nothing
    Set sf1 = Nothing
    Set sf2 = Nothing
    
    Exit Sub
    
ErrorHandler:
    Msg = "newName = " + newName + "Error # " & Str(Err.Number) & " was generated by " _
            & Err.Source & Chr( 13 ) & Err.Description
    MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext

    Resume Next
End Sub

Там, где проверка идет на время, нужно вставить разницу дат и проверку дней недели. Еще помню, там байда была с копированием. На каком то этапе, после
копирования n-ого файла (где n >> 500), лезла ошибка копирования...

Ну и полезен будет такой кусочек кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
'Проверка количества свободного места на диске

set fso = WScript.CreateObject("Scripting.FileSystemObject")
set WSHShell = WScript.CreateObject("WScript.Shell")

'Диск G - содержит архив
free =  FormatNumber(fso.GetDrive("G").FreeSpace,  0 )
WSHShell.Popup("На диске G осталось " + free + " байт")
...
Рейтинг: 0 / 0
Вот такой вопрос...
    #33157808
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, глянем.
Пока работай завалили, так что пока убираю файлы в ручную.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вот такой вопрос...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]