2012-02-04 11 views
0

以下は、ファイルを受け取りMB5L.txtし、ファイル名の一部として日付でzipファイルにそれを圧縮:バッチファイル名

@For /F "tokens=1,2,3,4 delims=/ " %%A in ('Date /t') do @(
    Set DayW=%%A 
    Set Day=%%B 
    Set Month=%%C 
    Set Year=%%D 
    Set All=%%D%%B%%C 
) 

"C:\Windows\CWBZIP.EXE" "c:\transfer\ziptest%All%.zip" "C:\transfer\MB5L.txt" 

今日では、MB5L.txtがziptest20120204.zipに圧縮されます。

ファイル「MB5L201202.txt」を「MB2020202」が変数であるMB5L20120202.zipに圧縮したいので、管理者は月曜日の午前中にバッチファイルを実行して週末のファイルをアーカイブすることができます。

+0

私はあなたが欲しいものを理解しようとしています。 2日前にバッチファイルに日付を計算させますか?ネット上の他の場所でのバッチ日付の計算の例があります。おそらくStack Overflowです。これがあなたの後であれば、私はおそらくあなたにいくつかのコードを見つけることができます。 –

答えて

1

今日の日付か昨日を出力名に含めるには? 昨日私はあなたと共有できるものをやった!

set yyyy= 

set $tok=1-3 
for /f "tokens=1 delims=.:/-, " %%u in ('date /t') do set $d1=%%u 
if "%$d1:~0,1%" GTR "9" set $tok=2-4 
for /f "tokens=%$tok% delims=.:/-, " %%u in ('date /t') do (
for /f "skip=1 tokens=2-4 delims=/-,()." %%x in ('echo.^|date') do (
set %%x=%%u 
set %%y=%%v 
set %%z=%%w 
set $d1= 
set $tok=)) 

if "%yyyy%"=="" set yyyy=%yy% 
if /I %yyyy% LSS 100 set /A yyyy=2000 + 1%yyyy% - 100 

set CurDate=%mm%/%dd%/%yyyy% 
set dayCnt=%1 

if "%dayCnt%"=="" set dayCnt=1 

REM Substract your days here 
set /A dd=1%dd% - 100 - %dayCnt% 
set /A mm=1%mm% - 100 

:CHKDAY 
if /I %dd% GTR 0 goto DONE 
set /A mm=%mm% - 1 
if /I %mm% GTR 0 goto ADJUSTDAY 
set /A mm=12 
set /A yyyy=%yyyy% - 1 

:ADJUSTDAY 
if %mm%==1 goto SET31 
if %mm%==2 goto LEAPCHK 
if %mm%==3 goto SET31 
if %mm%==4 goto SET30 
if %mm%==5 goto SET31 
if %mm%==6 goto SET30 
if %mm%==7 goto SET31 
if %mm%==8 goto SET31 
if %mm%==9 goto SET30 
if %mm%==10 goto SET31 
if %mm%==11 goto SET30 
REM ** Month 12 falls through 

:SET31 
set /A dd=31 + %dd% 
goto CHKDAY 

:SET30 
set /A dd=30 + %dd% 
goto CHKDAY 

:LEAPCHK 
set /A tt=%yyyy% %% 4 
if not %tt%==0 goto SET28 
set /A tt=%yyyy% %% 100 
if not %tt%==0 goto SET29 
set /A tt=%yyyy% %% 400 
if %tt%==0 goto SET29 

:SET28 
set /A dd=28 + %dd% 
goto CHKDAY 

:SET29 
set /A dd=29 + %dd% 
goto CHKDAY 

:DONE 
if /I %mm% LSS 10 set mm=0%mm% 
if /I %dd% LSS 10 set dd=0%dd% 

REM Set IIS and AWS date variables 
set IISDT=%yyyy:~2,2%%mm%%dd% 
set AWSDT=%yyyy%-%mm%-%dd% 

"C:\ WINDOWS \ CWBZIP.EXE" "C:\転送\ ziptest%DD% - %のミリ% - %YYYY%以下の.zipファイル" "C:\転送の\ MB5L.txt"

関連する問題