我正在尝试创建一个计划任务,该任务将每天早上运行以将文件从一个文件夹复制到另一个。那么问题来了,
源文件夹的名称是动态的,并以每日日期开始(即“06-Feb-13”)。如何创建一个能够确定每日日期并找到该文件夹的批处理文件?
提前致谢。
我正在尝试创建一个计划任务,该任务将每天早上运行以将文件从一个文件夹复制到另一个。那么问题来了,
源文件夹的名称是动态的,并以每日日期开始(即“06-Feb-13”)。如何创建一个能够确定每日日期并找到该文件夹的批处理文件?
提前致谢。
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
echo %mydate%_%mytime%
这个链接会帮助你。
如果它是您要查找的最新文件夹,那么您可以创建一个按创建日期排序的目录列表,然后对最后一个条目进行操作。如果您知道您需要的目录将始终是最近创建的,则无需抓取和比较实际日期。
@echo off
setlocal
for /f %%I in ('dir /t:c /o:d /b "c:\path\to\containing\dir\*."') do set dir=%%I
copy "%dir%\*.*" "c:\destination\folder"
请注意,我正在做dir "path\*."
而不是dir "path\*.*"
. 将*.
匹配目录但不匹配文件。
这是我为该日期提出的最终解决方案:
@echo off
REM -- Convert number to 3 character month--
set v=%date:~4,2%
SET map=01-Jan;02-Feb;03-Mar;04-Apr;05-May;06-Jun;07-Jul;08-Aug;09-Sep;10-Oct;11-Nov;12-Dec
CALL SET v=%%map:*%v%-=%%
SET v=%v:;=&rem.%
set y=%date:~12,4%
set d=%date:~7,2%
set "mydate=%d%-%v%-%y%"
echo %mydate%