Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование файлов за текущую дату! (http://forum.oszone.net/showthread.php?t=265720)

erorr 07-08-2013 12:14 2197806

Копирование файлов за текущую дату!
 
Всем доброго времени суток!
Помогите! Нужен скрипт который будет отбирать файлы из папки и подпапок за текущую дату(создание и изменение). и копировать в другую папку.
Спасибо!

Bruce Wayne 07-08-2013 12:43 2197822

Если через forfiles (возможно, отсутствует в системе), то можно так:

Код:

forfiles /d 0 /p "Папка" /m * /s /c "cmd /c copy /y "@path\@file" "Другая папка""

amel27 07-08-2013 12:49 2197826

для типовой локали DD.MM.YYYY
Код:

xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "Исходный путь\*" "Целевой путь\"

erorr 07-08-2013 14:57 2197936

amel27 Спасибо!

Надо, чтобы и измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения пути в новой папки.

amel27 спасибо.
Надо чтобы измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения

sunnykey 07-08-2013 15:51 2197979

Цитата:

Цитата erorr
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


erorr 08-08-2013 19:16 2198604

Желательно без Powershell

Foreigner 08-08-2013 23:43 2198770

Цитата:

Цитата erorr:
Надо чтобы измененные и созданные перекидывал, и желательно все в одну кучу, без сохранения

Цитата:

Желательно без 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


vsokol 27-10-2016 09:51 2682020

Цитата:

Цитата amel27
для типовой локали 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 2682048

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\*" - там есть файлы? И есть ли там файлы с датой за сегодняшний день?

vsokol 27-10-2016 11:20 2682056

Цитата:

Цитата megaloman
Посмотрите, как отобразилась дата
Сделайте 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 2682058

Измените какой-нибудь файл, или создайте какой-нибудь файл хоть в текстовом редакторе, чтобы была гарантия наличия сегодняшнего файла. На Вашей распечатке видны только сегодняшние даты папок, а не файлов.

vsokol 27-10-2016 11:49 2682065

Вложений: 1
Цитата:

Цитата megaloman
Измените какой-нибудь файл, или создайте какой-нибудь файл хоть в текстовом редакторе, чтобы была гарантия наличия сегодняшнего файла. На Вашей распечатке видны только сегодняшние даты папок, а не файлов. »

не работает вот скрин,файлы менял,редактировал,папки тоже редактировал,копировал
скиньте нормальный батник


http://forum.oszone.net/attachment.p...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

mwz 27-10-2016 14:31 2682112

Цитата:

Цитата vsokol
"E:\test\*" "E:\test2\" »

Ох не нравятся мне кавычки в последнем операнде....

megaloman 27-10-2016 16:09 2682143

Цитата:

Цитата megaloman
vsokol, для отладки сделайте

есно xcopy ... надо было проделать один раз для отладки, чтобы убедиться, что дата формируется правильно (было подозрение, что у Вас в системе формат даты не дд.мм.гггг). Теперь echo вовсе не нужно, как, впрочем, и pause. Надо было разобраться в ситуации - как оказалось, у Вас команда написана правильно, но Вы неверно интерпретировали результаты её выполнения: не было файлов для обработки.

mwz, а чем Вас угнетают кавычки? В конкретном случае они не обязательны, так как в пути нет пробелов, но это был тест, а какой реально будет путь - сие ни мне ни Вам не ведомо.

mwz 27-10-2016 22:13 2682239

Цитата:

Цитата megaloman
а чем Вас угнетают кавычки? »

Протестировал сейчас то, в чём сомневался. Прошло нормально, по крайней мере в Win-7.
Возражение снято.


Время: 10:45.

Время: 10:45.
© OSzone.net 2001-