0

一部のUNIXサーバーにいくつかのファイルがあります。filename に基づいて Windows にコピーする場合、ファイルを対応する年、対応する月、および対応する日付フォルダーにコピーする必要があります。サンプル ファイル名: 20120201.117_visual_sciences_web_feed.out.gz。ファイル名の最初の部分に基づいて作成されるフォルダー構造。この場合は 20120201(YYYY,MM,DD) です。上記の例では、ファイル名を 2012 -> 02-> 01 フォルダーにコピーする必要があります。フォルダーが作成されていない場合は作成する必要があります。

4

1 に答える 1

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

これをスクリプトに簡単に実装できることを願っています。指摘したように; スクリプトからいくつかの例を追加していただければ、さらにお役に立てます。

于 2013-11-05T23:44:39.513 に答える