Показать полную графическую версию : [решено] Копирование файлов за текущую дату!
Всем доброго времени суток!
Помогите! Нужен скрипт который будет отбирать файлы из папки и подпапок за текущую дату(создание и изменение). и копировать в другую папку.
Спасибо!
Bruce Wayne
07-08-2013, 12:43
Если через forfiles (возможно, отсутствует в системе), то можно так:
forfiles /d 0 /p "Папка" /m * /s /c "cmd /c copy /y "@path\@file" "Другая папка""
для типовой локали DD.MM.YYYYxcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "Исходный путь\*" "Целевой путь\"
amel27 Спасибо!
Надо, чтобы и измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения пути в новой папки.
amel27 спасибо.
Надо чтобы измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения
sunnykey
07-08-2013, 15:51
amel27 Спасибо!
Надо, чтобы и измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения пути в новой папки.
amel27 спасибо.
Надо чтобы измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения »
Тогда так
#Powershell script.
#Don't forget unlock script executing by
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
#Save this file with ".ps1" extension
#перемеменная OlderThan отвечает за разницу дней от текущей даты
$OlderThan=New-TimeSpan -Days 1
$CurDay=Get-Date -Date ((Get-Date)-$OlderThan) -Hour 00 -Minute 00 -Second 00 -Millisecond 00
Get-ChildItem D:\Downloads\* -Recurse -Force | `
? {(($_.CreationTime -gt $CurDay) -or ($_.LastWriteTime -gt $CurDay))} | `
Copy-Item -Destination "c:\папка назначения" -Force
Желательно без Powershell
Foreigner
08-08-2013, 23:43
Надо чтобы измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения
Желательно без Powershell
@echo off
setlocal
subst n: "C:\Path\To\Source Folder"
pushd n:
set "today=%date:~-4%%date:~3,2%%date:~0,2%"
for /f "usebackq tokens=2 delims==" %%i in (`wmic datafile where "drive='N:' and lastmodified>'%today%'" get name /value`) do (
copy /y "%%~i" "C:\Path\To\Destination Folder"
)
subst n: /d
popd
для типовой локали DD.MM.YYYY
Код:
xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "Исходный путь\*" "Целевой путь\" »
мне нужен как раз такой батник что бы
как в шапке
Нужен скрипт который будет отбирать файлы из папки и подпапок за текущую дату(создание и изменение). и копировать в другую папку.
Спасибо!
создал батник
xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "E:\test\*" "E:\test2\"
при запуске сразу закрывается,а если с командной строки то пишет скопировано 0 файлов
megaloman
27-10-2016, 11:09
vsokol, для отладки сделайте
echo xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "E:\test\*" "E:\test2\"
pause Посмотрите, как отобразилась дата Должно быть
xcopy /s /y /d:10-27-2016 "E:\test\*" "E:\test2\"
Сделайте Dir "E:\test\*" - там есть файлы? И есть ли там файлы с датой за сегодняшний день?
Посмотрите, как отобразилась дата
Сделайте Dir "E:\test\*" - там есть файлы? »
вот что вышло
C:\Users\sysadmin\Desktop>echo xcopy /s /y /d:10-27-2016 "E:\test\*" "E:\test2\"
xcopy /s /y /d:10-27-2016 "E:\test\*" "E:\test2\"
C:\Users\sysadmin\Desktop>pause
Для продолжения нажмите любую клавишу . . .
если ввести
Dir "E:\test\*"
то выходит
Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.
C:\Users\sysadmin>Dir "E:\test\*"
Том в устройстве E не имеет метки.
Серийный номер тома: C64A-6ED9
Содержимое папки E:\test
27.10.2016 11:15 <DIR> .
27.10.2016 11:15 <DIR> ..
27.10.2016 11:15 <DIR> Runnerv3
0 файлов 0 байт
3 папок 96*145*170*432 байт свободно
C:\Users\sysadmin>
непонятно почему не работает
megaloman
27-10-2016, 11:23
Измените какой-нибудь файл, или создайте какой-нибудь файл хоть в текстовом редакторе, чтобы была гарантия наличия сегодняшнего файла. На Вашей распечатке видны только сегодняшние даты папок, а не файлов.
Измените какой-нибудь файл, или создайте какой-нибудь файл хоть в текстовом редакторе, чтобы была гарантия наличия сегодняшнего файла. На Вашей распечатке видны только сегодняшние даты папок, а не файлов. »
не работает вот скрин,файлы менял,редактировал,папки тоже редактировал,копировал
скиньте нормальный батник
http://forum.oszone.net/attachment.php?attachmentid=140774&stc=1&d=1477558139
заработало
нужно что бы было батнике был текст
echo
xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "E:\test\*" "E:\testk\"
pause
а не
echo xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "E:\test\*" "E:\testk\"
pause
"E:\test\*" "E:\test2\" »
Ох не нравятся мне кавычки в последнем операнде....
megaloman
27-10-2016, 16:09
vsokol, для отладки сделайте есно xcopy ... надо было проделать один раз для отладки, чтобы убедиться, что дата формируется правильно (было подозрение, что у Вас в системе формат даты не дд.мм.гггг). Теперь echo вовсе не нужно, как, впрочем, и pause. Надо было разобраться в ситуации - как оказалось, у Вас команда написана правильно, но Вы неверно интерпретировали результаты её выполнения: не было файлов для обработки.
mwz, а чем Вас угнетают кавычки? В конкретном случае они не обязательны, так как в пути нет пробелов, но это был тест, а какой реально будет путь - сие ни мне ни Вам не ведомо.
а чем Вас угнетают кавычки? »
Протестировал сейчас то, в чём сомневался. Прошло нормально, по крайней мере в Win-7.
Возражение снято.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC