用于创建备份并使用时间戳记重命名的批处理文件

问题描述 投票:16回答:6

我具有以下网络路径,可将文件复制到存档文件夹。它将File 1Folder复制到Archive,但我想添加这2个无效的调整。

  1. File 1-1重命名为File 1 - date + time
  2. 现在运行它会显示一个带有复制代码的cmd框,是否可以在后台运行它或有一个加载屏幕来显示进展?

对于我的代码,我按照this example将名称更改为日期。

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"
windows batch-file windows-vista
6个回答
28
投票

尝试一下:

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

21
投票

看看这是否是您想要做的:

@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"

9
投票

我修改了Foxidrive的答案,以复制整个文件夹及其所有内容。此脚本将创建一个文件夹,并将另一个文件夹的内容(包括下面的所有子文件夹)备份到其中。

如果要按小时计划执行此任务,则需要格外小心,因为您可能会用原始文件夹的副本快速填充驱动器。在bitbucket等之前,我使用类似的脚本来离线保存我的代码。

@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 

1
投票

根据当前系统日期重命名所有.pdf文件。例如,名为Gross Profit.pdf的文件被重命名为Gross Profit 2014-07-31.pdf。如果明天运行,它将重命名为Gross Profit 2014-08-01.pdf

您可以将?替换为报告名称Gross Profit,但它只会重命名一个报告。 ?重命名Conduit文件夹中的所有内容。 ?这么多的原因是某些.pdf的名称很长。如果仅输入12个?,则任何长度超过12个字符的名称都会被剪切到第13个字符处。尝试使用1 ?,然后尝试使用许多??的长度应稍长或与最长的报告名称一样长。

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

0
投票

是,要使其在后台运行,请创建批处理文件的快捷方式,然后进入属性。我在Linux机器的ATM上,但是我相信您想要的选项在“高级”选项卡中。

您也可以通过vbs脚本运行批处理脚本,如下所示:

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

这将在不显示cmd窗口的情况下执行您的批处理文件。


0
投票

28

尝试一下:

ren“文件1-1”“文件1-%date:/ =-%%time :: =-%”共享编辑13年8月1日在15:57回答

Endoro33.1k77金徽章4040银徽章58

工作感谢

我做了些零钱就可以了

ren文件.txt文件-%time :: =-%。txt

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.