![]() |
Копирование файлов из подкаталогов только за текущую дату.
Добрый день Уважаемые пользователи форума.
Передо мной стоит задача провести копирование файлов только за текущую дату. В DirPath указана корневая директория, в которой создаются подкаталоги с именами папок (по дням юлианского календаря, к примеру 17036), в этих папках лежат некоторое количество файлов, нужно скопировать только файл с конкретным расширением, именно за сегодняшний день, в конкретную папку, без копирования директории (только файл). У меня есть скрипт, но я никак не могу добавить туда фильтр по времени, не могли бы Вы помочь Текст скрипта: strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Const ForAppending = 8 Dim fso,NewFile,sFolder, Time, currentDate, DT, DateVal Set objNetwork = CreateObject("WScript.Network") Set fso = CreateObject("Scripting.FileSystemObject") DirPath = "C:\Склады\" TargetPath = "C:\1\Inward\22\" Mask = ".x" Function Format(N) If N >= 10 Then Format= Format & N Else Format= Format & "0" & N End If End Function Set objFolder = fso.GetFolder(DirPath) Set colSubfolders = objFolder.SubFolders For Each objSubfolder in colSubfolders varSrc = Replace(objSubfolder.Path, "\", "\\") Set FileList = objWMIService.ExecQuery _ ("ASSOCIATORS OF {Win32_Directory.Name=""" & varSrc & """} Where " _ & "ResultClass = CIM_DataFile") For Each objFile In FileList On Error Resume Next SFile = objFile.Drive & objFile.Path & _ objFile.FileName & "." & objFile.Extension ext = Right(objFile.Extension, Len(objFile.Extension)) bufExt = objFile.Extension Trgt_ext = TargetPattern & ext strNewName = objFile.Drive & objFile.Path & _ objFile.FileName & "." & Trgt_ext hh = Hour(Now) mm = Minute(Now) ss = Second(Now) LogTime = format(hh)&":"&Format(mm)&":"&format(ss) fso.CopyFile strNewName , TargetPath Next Next |
Чтец123, Если VBS не принципиально (не вчитывался в приведенный Вами скрипт), то вот CMD:
For+Dir
Код:
@Echo Off forfiles
Код:
@Echo Off Код:
@Echo Off |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Set objFolder = fso.GetFolder(DirPath) Set colSubfolders = objFolder.SubFolders For Each objSubfolder in colSubfolders varSrc = Replace(objSubfolder.Path, "\", "\\") Set FileList = objWMIService.ExecQuery _ ("ASSOCIATORS OF {Win32_Directory.Name=""" & varSrc & """} Where " _ & "ResultClass = CIM_DataFile") Но я не уверен, потому что начал работать с VBS совсем недавно. Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
И давайте уточним: Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Но вот при попытке запустить на сетевом диске выходить проблема. Выходит ошибка переменная среды не определена, хотя сетевой диск подключен. Подскажите пожалуйста необходимо что то добавить подключение сетевого диска? |
Чтец123, ну, вот как-то так:
Скрытый текст
Код:
Option Explicit |
Цитата:
Я попытался его запустить, но он не отработал, ругается на комментируемую строку. в начале строки должен быть Set objSubFolder = ? |
Как именно «ругается»? Покажите скриншот.
Вы запускаете его из-под cscript.exe? |
Вложений: 1
|
Цитата:
Код:
cscript.exe //nologo "Путь\Скрипт.vbs" |
Время: 22:37. |
Время: 22:37.
© OSzone.net 2001-