30 Ноябрь 2009

Выделить имя последней папки из полного пути

Папки |  Таги: , , ,

Выделить имя последней папки из полного пути

Dim Names1 'массив имен обрабатываемых папок  ВВОД ИСХОДНЫХ ДАННЫХ
Names1 = Array ("D:\Test","C:\Test2") 'перечислить имена архивируемых папок
Dim Names2(40) 'массив на 40 позиций хранящий имена конечных папок получателя архивных данных
Arhiv1="D:\Arh\" ' -указать место расположение архивов. Наличие и отсутствие слешей в \Arhiv1\ и \Names1 необходимо соблюсти в соответствии с образцом!

Dim WSHshell 'модуль инициализации запуска внешних приложе-
Set WSHshell = WScript.CreateObject("WScript.Shell") 'ний через объект WshShell

dd = Weekday(Now)-1 'т.к. результат воскресенья=1 делаем -1 чтобы иметь понедельник=1
c=Arhiv1&dd 'индусская конкатенация строк
Arhiv2=c+"\" 'вспомогательная переменная превращающая D:\Arh\ в D:\Arh\1\ 'получаем сегодняшний Путь получатель архива
'WScript.Echo "Папка получатель всех архивов на сегодня: ", Arhiv2 'с учетом дня недели

N = UBound (Names1) ' забираем в N количество элементов массива Names1
'WScript.Echo N+1," - количество объектов архивации" 'вывести на экран количество объектов архивации

for bbb = 0 to N ' цикл заполнения массива папок получения архивов
  'WScript.Echo Names1(bbb)," Объект архивации №", bbb+1
  S=Names1(bbb) 'берем очередной объект архивирования из массива
  RRR = split (S,"\") ' разбить содержимое переменной S командой split в массив RRR по символу "\"
  NN = UBound (RRR) 'определить количество элементов полученного массива RRR
  Names2(bbb) = RRR(NN) 'заполняем массив Names2 хранящий имена конечных папок получателя архивных данных последним содержимым из массива RRR
  'WScript.Echo Arhiv2+Names2(bbb),"Конечное имя объекта архивации №",bbb+1 'вывести на экран последний элемент полученого массива, т.е. имя папки получателя архива
next

Command = "%COMSPEC% /c rmdir "+Arhiv2+" /s /q" ' ***УДАЛЕНИЕ*** - функция предварительной очистки папки архива
WScript.echo Command," Команда удаления"
Code = WshShell.run (Command, 1, true) 'непосредственно удаление
WScript.echo Code," Результат удаления" 'вывести код удаления, НОЛЬ если успешно.
if Code = 0 then WshShell.LogEvent 0, "FVBS_Buckup Success: "+Command+" Code: "&Code else WshShell.LogEvent 1, "FVBS_Buckup Error: "+Command+" Error: "&Code 

for m = 0 to N ' ***ГЛАВНЫЙ ЦИКЛ***
  Command="xcopy "+Names1(m)+" "+Arhiv2+Names2(m)+" /s /e /h /v /i /c /y" ' ***КОПИРОВАНИЕ*** подготовка команды на копирование
  WScript.echo Command 'вывести на экран команду копирования
  Code = WshShell.run (Command,1,true) 'выполнить копирование
  WScript.echo Code,"результат работы xcopy ноль при успеехе" 'вывести на экран результат работы xcopy где 0 без ошибок
  if Code = 0 then WshShell.LogEvent 0, "FVBS_Buckup Success: "+Command+" Code: "&Code else WshShell.LogEvent 1, "FVBS_Buckup Error: "+Command+" Error: "&Code

  Command="C:\Progra~1\WinRAR\Rar.exe a -r -ep1 "+Arhiv2+Names2(m)+".rar"+" "+Arhiv2+Names2(m)+"\"   ' ***АРХИВАЦИЯ***
  WScript.Echo Command," команда архивации"
  Code = WshShell.run (Command, 1, true)
  WScript.Echo Code," код ошибки WinRAR - НОЛЬ при успехе"
  if Code = 0 then WshShell.LogEvent 0, "FVBS_Buckup Success: "+Command+" Code: "&Code else WshShell.LogEvent 1, "FVBS_Buckup Error: "+Command+" Error: "&Code
next

WScript.Echo "КОНЕЦ ПРОГРАММЫ" 'такой вот конец!


Оставить комментарий

Я не робот.


черепица керамическая