PDA

Показать полную графическую версию : [решено] Копирование файлов по маске за вчерашний день


dvassilyev
18-05-2009, 13:13
Добрый день!
Желаю вам благополучия и всяческих интереснейших приключений в жизни =)
Одно из таких приключилось со мной.
Суть такова:
1) Имеется каталог (c:\\folder), в котором создаются файлы каждый день с определённой периодичностью.
2) Название файла - ггггммдд_n.nsg , где n - номер файла от 1 до .... ( Пример - 20090430_41.ngs)
3) Необходимо копировать все файлы созданные вчера с c:\\folder в c:\\copy
У кого есть какие идеи? Спасибо.

tenalex
18-05-2009, 15:13
Думаю есть выход:
========================
@Echo Off

For /F "Tokens=1 Delims=.+-" %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DateTime=%%i
echo %DateTime:~0,-10%%DateTime:~4,-8%%DateTime:~6,-6% >> c:\test2\maska.txt

xcopy /EXCLUDE:c:\test2\maska.txt c:\test\*.* c:\test2


Позаимствовал с


[решено] Проверить наличие файла с текущей (http://forum.oszone.net/thread-138273.html)

dvassilyev
18-05-2009, 15:15
тему можно закрыть, решение найдено :)

Maza Faka
18-05-2009, 15:35
dvassilyev
Пример:

@Echo Off

Set SourceDir=C:\
Set DestDir=D:\

Forfiles /D -1 /P %SourceDir% /M *.* /C "Cmd /C Copy /Y %SourceDir%\@file %DestDir%\"

tenalex
18-05-2009, 15:50
@Echo Off Set SourceDir=C:\ Set DestDir=D:\ Forfiles /D -1 /P %SourceDir% /M *.* /C "Cmd /C Copy /Y %SourceDir%\@file %DestDir%\"
Это интересно, но как то не работает. Может я чего-то не до понимаю?

vadimir
27-08-2010, 22:32
имеется подобная задача как и у автора топика
тоже есть папка где каждый день формируются 2 файла и там же остаются
задача копировать ежедневно--эти 2файла за вчерашний день
по скрипту выше копируются файлы с вчерашнего дня и файлы созданные ранее(кроме сегодняшнего)
как сделать чтобы копировалось ТОЛЬКО 2 файла за вчерашний день

deepred
27-08-2010, 23:03
vadimir,

предлагаю решение на VBScript (*.vbs):

Option Explicit
Dim objFSO, objFile
Dim strSRCFolder, strDSTFolder

strSRCFolder = "G:\" ' папка источник
strDSTFolder = "G:\1" ' папка приемник

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
if objFSO.FolderExists(strSRCFolder) Then
if objFSO.FolderExists(strDSTFolder) Then

For Each objFile In objFSO.GetFolder(strSRCFolder).Files
if DateDiff("D", objFile.DateLastModified, Now) = 1 Then
objFile.Copy strDSTFolder & "\"
End If
Next
Else
Wscript.Echo "strDSTFolder: " & strDSTFolder & " не существует!"
End If
Else
Wscript.Echo "strSRCFolder: " & strSRCFolder & " не существует!"
End If
Wscript.Quit 0

vadimir
28-08-2010, 10:23
спасибо работает-проверил на хр
создал текст документ туда вставил то что выше
скорректировал папки-- обозвал 111.vbs
просто запустил--задачц выполняет
теперь можно этот файл в шедулера поставить
чтобы запускался в определенное время
а будет ли работать под вин 2000?

enter61
19-10-2011, 19:36
Задаче в следующем: с клиентских ПК копируються папки рабочий стол Мои документы т.е только файлы docx, doc, pdf, xlsx, xls. в сетевой каталог \\freenas\Ivanova\ в папке иванова создаеться каталог с текущей датой. а старый каталог переминовываеться в 20.10.2011Old. при последующем копировании каталог 20.10.2011Old удаляеться,на его место создаеться предыдущий каталог 21.10.2011old. и что бы окно батника было невидимым.

напишите пожайлуста готовый скрипт.




© OSzone.net 2001-2012