batch file创build备份并用时间戳重命名

我有以下networkingpath将文件复制到存档文件夹。 它将File 1Folder复制到Archive但我想添加这两个不起作用的调整。

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

对于我的代码,我按照这个例子把名字改成了一个date。

 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的答案来复制整个文件夹及其所有内容。 这个脚本将创建一个文件夹并将其他文件夹的内容备份到其中,包括下面的任何子文件夹。

如果你说这是一个小时计划的任务,你需要小心,因为你可以用原始文件夹的副本快速填满你的驱动器。 在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 

根据当前系统日期重命名所有.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试一下? ,然后尝试用很多? 秒。 这个? 长度应该稍长或只要最长的报告名称。

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

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

您也可以通过像这样的vbs脚本来运行批处理脚本:

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

这将执行你的批处理文件,不显示cmd窗口。