.bat文件xcopy文件仅基于具有时间戳的文件名

时间:2016-08-24 16:46:05

标签: batch-file

我有一个bat文件执行以下操作。

window["Ctrls"]["Base"]["DBController"]["Grid"];

生成的文件名称中包含时间戳:

  

MY_FILE_11111_08-23-2016_111111.xml

日期时间从第三个window.Ctrls.Base.DBController.Grid 格式化为object.property object["property"]

后开始

如何编写一个bat命令,只有在文件名具有今天的日期时才会复制?

1 个答案:

答案 0 :(得分:0)

有预定义的环境变量DATE,它以Windows区域设置定义的格式保存当前本地日期。在命令提示符窗口中运行

echo %DATE%

如果输出为08/23/2016(MM / DD / YYYY),则每个斜杠必须在字符串中用连字符替换为wOxxOm已建议使用单行命令行。

set "FileDate=%DATE:/=-%"
%SystemRoot%\System32\xcopy.exe "C:\Folder\*%FileDate%*" "D:\Another_Folder\"

但是,如果输出是例如Tue, 23/08/2016(带有工作日)或仅23/08/2016(没有工作日),那么当前日期字符串必须重新格式化,这对于两个日期格式示例都是如此:

set "FileDate=%DATE:~-7,2%-%DATE:~-10,2%-%DATE:~-4%"
%SystemRoot%\System32\xcopy.exe "C:\Folder\*%FileDate%*" "D:\Another_Folder\"

如何在命令 SET 的帮助下解释字符替换(第一种方法)如何分别连接特定子串(第二种方法),可以通过打开命令提示符窗口并运行{{1或者set /?

如果只复制一个文件,则很可能使用Windows命令处理器的内部命令 COPY 而不是Windows标准控制台应用程序(外部命令)help set。在命令提示符窗口xcopy.execopy /?中运行,以显示这两个复制命令的帮助。