Страница 1 из 1

Системные переменные

СообщениеДобавлено: 26 июн 2008, 12:37
Tolik Mironov
Подскажите возможно ли. Есть задача - каждый день
по шедулеру создавать папку с именем "ддммгггг",
где дд мм гггг соответственно текущая дата.
Работает ли toolbox с переменными типа %day% %month% ?
Посмотрел на Avanti Taskmaster - он умеет, но собака платный.

СообщениеДобавлено: 26 июн 2008, 12:42
Dimerson
perl.nlm и bash.nlm умеют все _и еще кое-что_.

СообщениеДобавлено: 26 июн 2008, 12:55
Tolik Mironov
Уточню задачу.
Надо раз в сутки копировать каталог с нетвари 4.2 на нетварь 6.0, при этом каждый день в новый каталог с именем, соответствующим текущей дате.

СообщениеДобавлено: 26 июн 2008, 15:45
v13
Поковырять nwzip ? он ещё и запакует.

СообщениеДобавлено: 26 июн 2008, 16:52
Пилютик Михаил
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


Просьба сильно не смеяться по-поводу данных скриптов, мое соприкосновение с бэйсиком началось и закончилось данными скриптами.

СообщениеДобавлено: 26 июн 2008, 18:41
Tolik Mironov
Как их запускать то, скрипты? Вообще никогда не сталкивался.

СообщениеДобавлено: 26 июн 2008, 18:50
Пилютик Михаил
Tolik Mironov писал(а):Как их запускать то, скрипты? Вообще никогда не сталкивался.


например, nsn RenToWeek.bas backup:fullcopy

но думаю лучше сначала почитать о бэйсике Netware. А то у NetWare 6.5, там он по-моему ставиться при инсталляции сервера, у вас 6.0....