1

我正在尝试创建一个计划任务,该任务将每天早上运行以将文件从一个文件夹复制到另一个。那么问题来了,

源文件夹的名称是动态的,并以每日日期开始(即“06-Feb-13”)。如何创建一个能够确定每日日期并找到该文件夹​​的批处理文件?

提前致谢。

4

3 回答 3

1
@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%

这个链接会帮助你。

于 2013-02-07T13:06:05.280 回答
0

如果它是您要查找的最新文件夹,那么您可以创建一个按创建日期排序的目录列表,然后对最后一个条目进行操作。如果您知道您需要的目录将始终是最近创建的,则无需抓取和比较实际日期。

@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\*.*". 将*.匹配目录但不匹配文件。

于 2013-02-07T12:53:21.770 回答
0

这是我为该日期提出的最终解决方案:

@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%
于 2013-02-07T14:18:38.030 回答