PDA

Показать полную графическую версию : [решено] Скриптик для бэкапа


awaken91
20-12-2012, 17:36
Добрый день, уважаемые пользователи форума. Я человек, который абсолютно не разбирается в написании скриптов. Может быть, кто-нибудь сможет написать следующий VBS скрипт:

1) он должен создать папку по вчерашнему числу в формате годмесяцчисло, например, 121119
2) он должен переместить папки с названиями аю, ют, вв, нс в эту папку. Правда, как правило, присутствуют одновременно только две из этих папок.

Пожалуйста, помогите, кто может, если это вообще реализуемо.

Папка, в которой нужно создать папку с числом - сетевая, вида \\filesrv-1\ЦНТРЛЗЦ\07.МШБР\КС\

Конечно, можно и бат-файлом, главное, чтобы встроенные средства Windows действовали.

Заранее благодарю!

Iska
20-12-2012, 18:53
он должен переместить папки с названиями аю, ют, вв, нс в эту папку. »
Откуда берутся эти папки, где они расположены?

awaken91
20-12-2012, 20:07
Папки находятся в \\filesrv-1\ЦНТРЛЗЦ\07.МШБР\КС\

собственно, создать папку со вчерашним числом нужно там же и переместить туда эти папки

Iska
23-12-2012, 09:45
awaken91, примерно так:
Option Explicit

Dim strFolderSource
Dim strFolderDest

Dim objFSO
Dim objFolder


'strFolderSource = "\\filesrv-1\ЦНТРЛЗЦ\07.МШБР\КС\"
strFolderSource = "E:\Песочница\0216\filesrv-1\ЦНТРЛЗЦ\07.МШБР\КС"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strFolderSource) Then
strFolderDest = .BuildPath(strFolderSource, LastDateFormat(Now()))

If Not .FolderExists(strFolderDest) Then
.CreateFolder strFolderDest
End If

For Each objFolder In .GetFolder(strFolderSource).SubFolders
Select Case objFolder.Name
Case "аю", "ют", "вв", "нс"
objFolder.Move strFolderDest & "\"
Case Else
' Nothing to do
End Select
Next
Else
WScript.Echo "Source folder [" & strFolderSource & "] not found"
End If
End With

WScript.Quit 0
'=============================================================================

'=============================================================================
Function LastDateFormat(dtDateTime)
Dim dtLastDate

dtLastDate = DateAdd("d", -1, dtDateTime)

LastDateFormat = _
Right(CStr(Year(dtLastDate)), 2) & _
Right("00" & CStr(Month(dtLastDate)), 2) & _
Right("00" & CStr(Day(dtLastDate)), 2)
End Function
'=============================================================================

awaken91
24-12-2012, 10:38
Попробовал, создал песочницу, не момент выполнения существовала папка вв на сервере, он создал в песочнице папку со вчерашним числом но не переместил туда вв.

Апдейт, поправил скрипт - получилось! =) Спасибо большое!

Iska
24-12-2012, 10:56
Апдейт, поправил скрипт - получилось! »
Что поправляли?

awaken91
25-12-2012, 12:02
'strFolderSource = "\\filesrv-1\ЦЕНТРАЛИЗАЦИЯ\07.МАШБЮРО\ОКИС\"
strFolderSource = "\\filesrv-1\ЦЕНТРАЛИЗАЦИЯ\07.МАШБЮРО\ОКИС"

Бэкап должен прямо на сервере в той же папке быть, собственно вот и вся правка

Iska
25-12-2012, 12:07
awaken91, спасибо, ясно.




© OSzone.net 2001-2012