|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Копирование файлов из подкаталогов только за текущую дату. |
|
|
VBS/WSH/JS - [решено] Копирование файлов из подкаталогов только за текущую дату.
|
Новый участник Сообщения: 7 |
Добрый день Уважаемые пользователи форума.
Передо мной стоит задача провести копирование файлов только за текущую дату. В 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 |
|
Отправлено: 13:53, 08-02-2017 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Чтец123, Если VBS не принципиально (не вчитывался в приведенный Вами скрипт), то вот CMD:
For+Dir
forfiles
@Echo Off Set "From=Z:\Box_In" Set "To=Z:\Box_Out" Set "Mask=*.js" Set "Comm=cmd /C >nul copy "@path" "%To%\"" FORFILES /P "%From%" /M "%Mask%" /S /D +0 /C "%Comm%" |
------- Последний раз редактировалось megaloman, 08-02-2017 в 20:13. Отправлено: 19:23, 08-02-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Чтец123:
Цитата Чтец123:
Цитата Чтец123:
|
|||
Отправлено: 07:48, 09-02-2017 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
Цитата Iska:
|
|||
Отправлено: 08:06, 09-02-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Чтец123:
Цитата Чтец123:
Цитата Чтец123:
Цитата Чтец123:
|
|||||
Отправлено: 09:00, 09-02-2017 | #5 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
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 совсем недавно. Цитата Iska:
Цитата Iska:
|
||||
Отправлено: 09:09, 09-02-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Чтец123:
Цитата Чтец123:
![]() Цитата Чтец123:
И давайте уточним: Цитата Чтец123:
|
||||
Отправлено: 13:22, 09-02-2017 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
Цитата Iska:
|
|||
Отправлено: 14:54, 09-02-2017 | #8 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Но вот при попытке запустить на сетевом диске выходить проблема. Выходит ошибка переменная среды не определена, хотя сетевой диск подключен. Подскажите пожалуйста необходимо что то добавить подключение сетевого диска? |
|
Отправлено: 15:29, 09-02-2017 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Чтец123, ну, вот как-то так:
Скрытый текст
Option Explicit Dim strSourceFolder Dim strDestFolder Dim strFileExt Dim objFSO strSourceFolder = "C:\Склады" strDestFolder = "C:\1\Inward\22" strFileExt = "x" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(strSourceFolder) Then If objFSO.FolderExists(strDestFolder) Then ScanSubFolders objFSO.GetFolder(strSourceFolder), strFileExt Else WScript.Echo "Can't find destination folder [" & strDestFolder & "]." WScript.Quit 2 End If Else WScript.Echo "Can't find source folder [" & strSourceFolder & "]." WScript.Quit 1 End If Set objFSO = Nothing WScript.Quit 0 '============================================================================= '============================================================================= Sub ScanSubFolders(objFolder, strFileExt) Dim objFile Dim objSubFolder WScript.StdOut.WriteLine "[" & objFolder.Path & "]" For Each objFile In objFolder.Files If StrComp(objFSO.GetExtensionName(objFile.Name), strFileExt, vbTextCompare) = 0 Then If DateDiff("d", objFile.DateCreated, Now()) = 0 Then WScript.StdOut.Write vbTab & objFile.Name If Not objFSO.FileExists(objFSO.BuildPath(strDestFolder, objFile.Name)) Then objFile.Copy strDestFolder & "\", False WScript.StdOut.WriteLine " : copied into destination folder [" & strDestFolder & "]." Else WScript.StdOut.WriteLine " : already exists in destination folder [" & strDestFolder & "]." End If End If End If Next For Each objSubFolder In objFolder.SubFolders ScanSubFolders objSubFolder, strFileExt Next End Sub '============================================================================= |
Отправлено: 15:51, 09-02-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование файлов за текущую дату! | erorr | Скриптовые языки администрирования Windows | 14 | 27-10-2016 22:13 | |
CMD/BAT - Копирование файлов по маске за текущую дату или пропуская ранее скопированные файлы | jastreb83 | Скриптовые языки администрирования Windows | 3 | 19-08-2014 13:36 | |
VBS/WSH/JS - Копирование файлов из каталогов и подкаталогов с сохранением структуры подкаталогов | spke | Скриптовые языки администрирования Windows | 0 | 10-04-2013 23:58 | |
CMD/BAT - нужно извлечь из архива определенные файлы за текущую дату | alek2012 | Скриптовые языки администрирования Windows | 0 | 20-06-2012 15:24 | |
CMD/BAT - копирование файлов за текущую дату с сервера на сервер | 6a6yko | Скриптовые языки администрирования Windows | 10 | 21-06-2011 13:00 |
|