Пакетный файл для создания резервной копии и переименования с меткой времени

У меня есть следующий сетевой путь для копирования файла в папку архива. Он копирует File 1 от Folder до Archive, но я хотел бы добавить эти 2 корректировки, которые не будут работать.

  • Переименуйте File 1-1 в File 1 - date + time
  • Теперь он запускает CMD-код с кодом копирования, возможно ли это для запуска в фоновом режиме или для отображения экрана загрузки прогресс?

Для моего кода я выполнил этот пример, чтобы изменить имя на дату.

copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1-1.xlsx"
/f "tokens=1-5 delim s=/ " %%d in ("%date%") do rename "F:\Folder example 2.xlsx" "F:\Folder\File example %%e-%%f-%%g.xlsx"

Ответ 1

попробуйте следующее:

ren "File 1-1" "File 1 - %date:/=-% %time::=-%"

Ответ 2

Посмотрите, что вы хотите сделать:

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%

copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1 - %stamp%.xlsx"

Ответ 3

Я изменил ответ Foxidrive, чтобы скопировать целые папки и все их содержимое. этот script создаст папку и сохранит в ней содержимое другой папки, включая подпапки под ней.

Если вы укажете это почасовой запланированной задаче, вам нужно быть осторожным, так как вы можете быстро заполнить свой диск копиями исходной папки. Перед битбакетом и т.д. Я использовал в качестве аналогичного script для сохранения моего кода в автономном режиме.

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=YourPrefixHere_%YYYY%%MM%%DD%@%HH%%Min%
rem you could for example want to create a folder in Gdrive and save backup there
cd C:\YourGoogleDriveFolder
mkdir %stamp%
cd %stamp%

 xcopy C:\FolderWithDataToBackup\*.* /s 

Ответ 4

Переименовывает все .pdf файлы на основе текущей системной даты. Например, файл с именем Gross Profit.pdf переименовывается в Gross Profit 2014-07-31.pdf. Если вы запустите его завтра, он переименует его в Gross Profit 2014-08-01.pdf.

Вы можете заменить ? на название отчета Gross Profit, но оно будет только переименовывать один отчет. ? переименовывает все в папке Conduit. Причина в том, что существует так много ?, что некоторые .pdf имеют длинные имена. Если вы просто положили 12 ? s, тогда любое имя длиной более 12 символов будет отсечено на 13-м символе. Попробуйте с помощью 1 ?, затем попробуйте со многими ? s. Длина ? должна быть немного длиннее или длиннее самого длинного имени отчета.

@ECHO OFF
SET NETWORKSOURCE=\\flcorpfile\shared\"SHORE Reports"\2014\Conduit
REN %NETWORKSOURCE%\*.pdf "????????????????????????????????????????????????? %date:~-4,4%-%date:~-10,2%-%date:~7,2%.pdf"

Ответ 5

Да, чтобы запустить его в фоновом режиме, создайте ярлык для командного файла и перейдите в свойства. Я нахожусь в банкомате с Linux, но считаю, что желаемый вариант находится на вкладке "Дополнительно".

Вы также можете запустить пакет script через vbs script следующим образом:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

Это приведет к выполнению вашего командного файла без отображения CMD-окна.