Batch file .bat文件xcopy文件仅基于具有时间戳的文件名
我有一个执行以下操作的bat文件Batch file .bat文件xcopy文件仅基于具有时间戳的文件名,batch-file,Batch File,我有一个执行以下操作的bat文件 xcopy c:\folder\*.* d:\another_folder\. del *.xml del *.lst 生成的文件名称中有一个时间戳: 我的_文件_11111_08-23-2016_111111.xml 日期时间从格式为MM-DD-YYYY的第三个之后开始 如何编写仅在文件名具有今天日期时才会复制的bat命令?有预定义的环境变量date,它以Windows区域设置定义的格式保存当前本地日期。在命令提示窗口中运行该行 echo %DATE% 如
xcopy c:\folder\*.* d:\another_folder\.
del *.xml
del *.lst
生成的文件名称中有一个时间戳:
我的_文件_11111_08-23-2016_111111.xml
日期时间从格式为MM-DD-YYYY的第三个
之后开始
如何编写仅在文件名具有今天日期时才会复制的bat命令?有预定义的环境变量
date
,它以Windows区域设置定义的格式保存当前本地日期。在命令提示窗口中运行该行
echo %DATE%
如果输出为2016年8月23日(MM/DD/YYYY),则字符串中的每个斜杠都必须用连字符替换,如单行命令行所示
set "FileDate=%DATE:/=-%"
%SystemRoot%\System32\xcopy.exe "C:\Folder\*%FileDate%*" "D:\Another_Folder\"
但如果输出为例如2016年8月23日星期二(含工作日)或仅为2016年8月23日(不含工作日),则必须重新格式化当前日期字符串,这两种日期格式示例都是:
set "FileDate=%DATE:~-7,2%-%DATE:~-10,2%-%DATE:~-4%"
%SystemRoot%\System32\xcopy.exe "C:\Folder\*%FileDate%*" "D:\Another_Folder\"
字符替换(第一种方法)分别连接特定子字符串(第二种方法)的工作原理在命令SET的帮助下进行了说明,打开命令提示窗口并运行SET/?
或help SET
可以读取该命令
如果只需复制一个文件,则最有可能使用Windows command processor的内部命令COPY,而不是Windows标准控制台应用程序(外部命令)
xcopy.exe
。在命令提示窗口中运行copy/?
和xcopy/?
以显示这两个复制命令的帮助。根据您的系统日期格式,它可以简单如下:xcopy c:\folder\*%date:/=-%*d:\另一个\u文件夹\。
到目前为止您尝试了什么?请分享你的努力!文件名中的日期/时间格式是否符合date/T
和time/T
命令返回的格式?