PDA

Показать полную графическую версию : [решено] Перемещение данных в подпапки с указанием даты


PAlkovnic
20-06-2013, 10:42
Добрый день!
Имеются две папки: C:\Source и C:\Dest. Необходимо переместить содержимое папки C:\Source в папку C:\Dest\YYYYMMDD, где YYYYMMDD - текущая дата. Скрипт будет запускаться раз в сутки и переносить наработанные данные в папку с указанием дня работ. Один нюанс, поскольку скрипт будет запускаться в 00:00:00, возможно, необходимо, что бы дата была вчерашней.
Заранее Благодарю!

Iska
20-06-2013, 13:36
PAlkovnic, у Вас что — семинар?

Имеются две папки: C:\Source »
Поправили по сравнению с прошлым вопросом, да ;)?

Option Explicit

Dim strSourceFolder
Dim strDestFolder
Dim strDestPath


strSourceFolder = "C:\Source"
strDestFolder = "C:\Dest"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strSourceFolder) Then
If .FolderExists(strDestFolder) Then
strDestPath = .BuildPath(strDestFolder, GetPrevDateToString())
CreateFolderEx strDestPath

If .GetFolder(strSourceFolder).SubFolders.Count > 0 Then
.MoveFolder .BuildPath(strSourceFolder, "*.*"), strDestPath
End If

If .GetFolder(strSourceFolder).Files.Count > 0 Then
.MoveFile .BuildPath(strSourceFolder, "*.*"), strDestPath
End If
Else
WScript.Echo "Can't find destination folder [" & strDestFolder & "]."
End If
Else
WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
End If
End With

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

'=============================================================================
Function GetPrevDateToString()
Dim dtDate

dtDate = DateAdd("d", -1, Date())

GetPrevDateToString = Right("0000" & CStr(Year(dtDate)), 4) & Right("00" & CStr(Month(dtDate)), 2) & Right("00" & CStr(Day(dtDate)), 2)
End Function
'=============================================================================

'=============================================================================
Sub CreateFolderEx(strPath)
With WScript.CreateObject("Scripting.FileSystemObject")
If Not .FolderExists(strPath) Then
CreateFolderEx .GetParentFolderName(strPath)
.CreateFolder strPath
End If
End With
End Sub
'=============================================================================

PAlkovnic
20-06-2013, 14:13
у Вас что — семинар? »
Нет :( , сказали сделать, спросил сроки, "позавчера" был ответ.
И именно по этому опечатался в предыдущей теме, спешил.
За скрипт огромная благодарность! Выручили!

Iska
20-06-2013, 15:08
спросил сроки, "позавчера" был ответ. »
Ну, это как обычно ;).




© OSzone.net 2001-2012