从动态文件夹结构中复制文件[Windows]

时间:2013-02-07 12:42:58

标签: windows batch-file xcopy

我正在尝试创建一个每天早上运行的计划任务,将文件从文件夹复制到另一个文件夹。所以这就是问题,

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

提前致谢。

3 个答案:

答案 0 :(得分: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%

Link会对您有所帮助。

答案 1 :(得分: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\*.*"*.将匹配目录,但不匹配文件。

答案 2 :(得分: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%
相关问题