我有以下网络路径将文件复制到存档文件夹。它会将File 1
从Folder
复制到Archive
,但我想添加这两项不起作用的调整。
File 1-1
重命名为File 1 - date + time
对于我的代码,我跟着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"
答案 0 :(得分:25)
试试这个:
ren "File 1-1" "File 1 - %date:/=-% %time::=-%"
答案 1 :(得分:19)
看看这是否是你想要做的:
@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"
答案 2 :(得分:7)
我修改了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
答案 3 :(得分:1)
根据当前系统日期重命名所有.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"
答案 4 :(得分:0)
是的,要使其在后台运行,请创建批处理文件的快捷方式并进入属性。我在Linux机器ATM上,但我相信你想要的选项是在高级选项卡中。
您还可以通过这样的vbs脚本运行批处理脚本:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
这将执行您的批处理文件,不显示cmd窗口。