我有一个bat文件,它执行以下操作。.bat文件xcopy文件仅基于具有时间戳的文件名
xcopy c:\folder\*.* d:\another_folder\.
del *.xml
del *.lst
生成的文件在其名称中加入时间戳:
MY_FILE_11111_08-23-2016_111111.xml
格式为MM-DD-YYYY_HHMMSS
_
后的日期时间开始
如何编写bat命令,该命令仅在文件名具有今天的日期时才会复制?
我有一个bat文件,它执行以下操作。.bat文件xcopy文件仅基于具有时间戳的文件名
xcopy c:\folder\*.* d:\another_folder\.
del *.xml
del *.lst
生成的文件在其名称中加入时间戳:
MY_FILE_11111_08-23-2016_111111.xml
格式为MM-DD-YYYY_HHMMSS
_
后的日期时间开始
如何编写bat命令,该命令仅在文件名具有今天的日期时才会复制?
有预定义的环境变量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的帮助下解释了替换(第一种方法)分别串联的特定子串(第二种方法)的工作,可以通过打开命令提示符窗口并运行set /?
或help set
来读取它。
如果只是一个单一的文件必须被复制,这是最可能足够使用Windows命令处理器,而不是标准的Windows控制台应用程序(外部命令)xcopy.exe
的内部命令COPY。在命令提示符窗口copy /?
和xcopy /?
中运行以显示这两个复制命令的帮助信息。
根据您的系统日期格式,它可以这么简单:'xcopy c:\ folder \ *%date:/ = - %* d:\ another_folder \ .' – wOxxOm
您到目前为止尝试过什么?请分享你的努力!文件名中的日期/时间格式是否符合'date/T'和'time/T'命令返回的格式? – aschipfl