PDA

Показать полную графическую версию : Xcopy. Добавление даты


prap0rdanyluk
12-11-2020, 06:01
Всем привет!
Имею следующий скрипт:
@echo off
taskkill /im outlook.exE
TIMEOUT 10
xcopy "%userprofile%\AppData\Local\Microsoft\Outlook\*.ost" /y \\mycloudpr4100\outlook_backup
start "" "C:\Program Files\Microsoft Office\root\Office16\outlook.exe"

Прошу помощи!
Необходимо, чтобы к каждому ost файлу добавлялась текущая дата.

/d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4%

Не понимаю, как дописать, чтобы применить массово.

megaloman
12-11-2020, 09:19
Необходимо, чтобы к каждому ost файлу добавлялась текущая дата. »
Что Вы имеете ввиду? Переименовать файлы? Куда дату добавлять? Если переименовать, то как дописать, чтобы применить массово. »Никак. /d в xcopy служит для фильтрации файлов по дате, а не для их переименования. Как вариант, (в рамках Xcopy), сделать для копии файлов папку с текущей датой (XCopy это сделает сама), например, в Вашем коде:xcopy "%userprofile%\AppData\Local\Microsoft\Outlook\*.ost" /y "\\mycloudpr4100\outlook_backup\%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4%\"

prap0rdanyluk
12-11-2020, 09:44
Ага, огромное спасибо! То, что нужно!

megaloman
12-11-2020, 09:58
prap0rdanyluk, Я бы предпочел иметь другой формат даты: ГГГГММДД, это выгоднее при сортировке файлов во время поиска по дате. В рамках Вашего кода:FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "TDate=%%d"
Set "TDate=%TDate:~0,8%"

xcopy "%userprofile%\AppData\Local\Microsoft\Outlook\*.ost" /y "\\mycloudpr4100\outlook_backup\%TDate%\"
Но если уж очень хочется переименовывать именно файлы, то:
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "TDate=%%d"
Set "TDate=%TDate:~0,8%
For %%f In ("%userprofile%\AppData\Local\Microsoft\Outlook\*.ost") Do Copy "%%f" "\\mycloudpr4100\outlook_backup\%TDate%-%%~nxf"




© OSzone.net 2001-2012