根据文件名创建年,月,日期文件夹结构

时间:2013-11-05 18:43:07

标签: windows batch-file

我在某个unix服务器上有一些文件。当我复制到Windows时,根据文件名,文件必须复制到相应的年份,相应的月份和相应的日期文件夹。示例文件名:20120201.117_visual_sciences_web_feed.out.gz。 基于文件名的第一部分创建的文件夹结构,在本例中为:20120201(YYYY,MM,DD)。在上面的例子中,文件名应该被复制到2012年 - > 02-> 01文件夹。如果没有创建,应该创建文件夹老实说我没有得到如何实现这一点,请建议。

1 个答案:

答案 0 :(得分:0)

这应该适合你 -

@echo off

set filename=20120201.117_visual_sciences_web_feed.out.gz
set filepath=PATH\TO\%filename%

REM get the date from the file name
for /f "delims=." %%A in ("%filename%") do set fdate=%%A

REM Y=YEAR; M=MONTH; D=DAY
set Y=%fdate:~0,4%
set M=%fdate:~4,2%
set D=%fdate:~6,2%

REM echo %Y% %M% %D%

REM check to see if directories exist
if not exist \%Y% mkdir %Y%
if not exist \%Y%\%M% mkdir %Y%\%M%
if not exist \%Y%\%M%\%D% mkdir %Y%\%M%\%D%

REM copy the file to the newly created destination folder
copy %filepath% %Y%\%M%\%D%\%filename%

pause

我希望你能够轻松地在脚本中实现这一点。如指出;如果您从脚本中添加了一些示例 - 我将能够提供更多帮助。