我在某个unix服务器上有一些文件。当我复制到Windows时,根据文件名,文件必须复制到相应的年份,相应的月份和相应的日期文件夹。示例文件名:20120201.117_visual_sciences_web_feed.out.gz。 基于文件名的第一部分创建的文件夹结构,在本例中为:20120201(YYYY,MM,DD)。在上面的例子中,文件名应该被复制到2012年 - > 02-> 01文件夹。如果没有创建,应该创建文件夹老实说我没有得到如何实现这一点,请建议。
答案 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
我希望你能够轻松地在脚本中实现这一点。如指出;如果您从脚本中添加了一些示例 - 我将能够提供更多帮助。