- @echo off
- set day=%date%
- set days=0
-
- setlocal enabledelayedexpansion
- :: 提取日期
- for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (
- set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100
- )
- set /a sd-=1
- if %sd% leq 0 call :count
- set sm=0%sm%
- set sd=0%sd%
- set od=%sy%%sm:~-2%%sd:~-2%
- goto rar
-
- :count
- set /a sm-=1
- if !sm! equ 0 set /a sm=12, sy-=1
- call :days
- set /a sd+=days
- if %sd% leq 0 goto count
- goto :eof
-
- :days
- :: 获取指定月份的总天数
- set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
- set /a max=28+leap
- for /f "tokens=%sm%" %%i in ("31 %max% 31 30 31 30 31 31 30 31 30 31") do set days=%%i
- goto :eof
-
- :rar
- echo %od%
-
- net use \\172.15.1.2\ipc$ /user:administrator (abc)
- rar a -r J:\241bak\%od%.rar \\172.15.1.2\f$\sqlbak
复制代码 请教上面代码
我172.15.1.2上面F盘sqlbak文件夹中很多个子文件夹,这些子文件夹每天会生成一个文件,我现在运行批处理就会反sqlbak所有文件都压缩到j:\241bak文的夹中以日期为名字命名
而我要的效果如果今天是8月23日就可提取8月22日的文件进行压缩,命名也是以20120822.rar为名字,而不是这个文件夹中所有文件,
请教在侠们该如何更改。 |