Ответ 1
попробуйте следующее:
ren "File 1-1" "File 1 - %date:/=-% %time::=-%"
У меня есть следующий сетевой путь для копирования файла в папку архива. Он копирует File 1
от Folder
до Archive
, но я хотел бы добавить эти 2 корректировки, которые не будут работать.
File 1-1
в File 1 - date + time
Для моего кода я выполнил этот пример, чтобы изменить имя на дату.
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"
попробуйте следующее:
ren "File 1-1" "File 1 - %date:/=-% %time::=-%"
Посмотрите, что вы хотите сделать:
@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"
Я изменил ответ 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
Переименовывает все .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"
Да, чтобы запустить его в фоновом режиме, создайте ярлык для командного файла и перейдите в свойства. Я нахожусь в банкомате с Linux, но считаю, что желаемый вариант находится на вкладке "Дополнительно".
Вы также можете запустить пакет script через vbs script следующим образом:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Это приведет к выполнению вашего командного файла без отображения CMD-окна.