Tolik Mironov писал(а):Уточню задачу.
Надо раз в сутки копировать каталог с нетвари 4.2 на нетварь 6.0, при этом каждый день в новый каталог с именем, соответствующим текущей дате.
Я такую задачу решал таким образом: копировал в один и тот же каталог, а потом переименовываю его с помощью одного из бэйсик-скриптов:
' RENToWeek переименовывает каталог source в MM.DD
' Usage : RENToWeek source
' source - каталог для переименования (полный путь)
'**************************************************************************
Sub Main()
If ArgumentCount <> 2 Then
Print "Usage: " & Arguments(1) & " [Dir_Source]"
Exit Sub
End If
On Error Resume Next
Set DirObj = CreateObject("UCX:NWFileMgr")
Set renDir = DirObj.FindEntry(Arguments(2))
If Err.Number <> 0 Then
Print "Directory "&Arguments(2)&" not found"
Exit Sub
End If
Set CurDir = DirObj.CurrentDir
' формируем новое имя каталога: MMDD
SMM = CStr(Month(now))
If Len(SMM) = 1 Then
SMM = "0" & SMM
End If
SDD = CStr(Day(now))
If Len(SDD) = 1 Then
SDD = "0" & SDD
End If
SDir_Dest = SMM & "." & SDD
' сформируем полное новое имя (путь плюс SDir_Dest)
I =InStrRev(Arguments(2), DirObj.Parse(Arguments(2)).Name,-1,1)
SDir_dest = left(Arguments(2), I-1) & SDir_dest
renDir.Name = SDir_Dest
If Err.Number <> 0 Then
Print "Rename failed"
Exit Sub
End If
End Sub
--------------------------------------------
' RENToDay переименовывает каталог source в D(номер дня недели: 0-вск., 1-пон...)
' Usage : RENToDay source
' source - каталог для переименования (полный путь)
'**************************************************************************
Sub Main()
If ArgumentCount <> 2 Then
Print "Usage: " & Arguments(1) & " [Dir_Source]"
Exit Sub
End If
On Error Resume Next
Set DirObj = CreateObject("UCX:NWFileMgr")
Set renDir = DirObj.FindEntry(Arguments(2))
If Err.Number <> 0 Then
Print "Directory "&Arguments(2)&" not found"
Exit Sub
End If
print "Каталог &renDir.Name"
Set CurDir = DirObj.CurrentDir
' новое имя: номер дня недели(0 - воскр., 1 - пон....)
Dir_Dest = WeekDay(now, vbSunday) - 1
SDir_Dest = CStr(Dir_Dest)
' сформируем полное новое имя (путь плюс SDir_Dest)
I =InStrRev(Arguments(2), DirObj.Parse(Arguments(2)).Name,-1,1)
SDir_dest = left(Arguments(2), I-1) & SDir_dest
renDir.Name = SDir_Dest
If Err.Number <> 0 Then
Print "Rename failed"
Exit Sub
End If
print "переименован в &renDir.Name"
End Sub
Просьба сильно не смеяться по-поводу данных скриптов, мое соприкосновение с бэйсиком началось и закончилось данными скриптами.