![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-01 06:51 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理如何判断动态日期copy |
| 可打印版本 904 / 4 |
| 第1楼 king2789 | 发表于 2009-06-30 22:24 |
| 新手上路 发帖 5 积分 13 | |
|
批处理如何判断动态日期copy 列如:090628.bak
090629.bak 090630.bak 090701.bak ----------------------------------------------------------------------------------------------------- 需要判断这些日期然后copy到另一台服务器上。 |
|
| 第2楼 s11ss | 发表于 2009-07-01 06:24 |
| 银牌会员 发帖 566 积分 2,098 | |
|
if 090628.bak geq 090101.bak echo 今年的备份
|
|
| 第3楼 fujiang1000 | 发表于 2009-07-10 00:56 |
| 初级用户 发帖 36 积分 44 | |
|
我明白楼主的意思了 楼主的意思可能是 没隔几天都会有几个bak文件产生 但是呢 这些bak文件名是以时间来命名 按照楼主的意思是 比如他想拷贝6月29号之后的文件到服务器上 应该怎么做 呵呵
|
|
| 第4楼 bobjjh | 发表于 2009-08-13 11:37 |
| 新手上路 发帖 1 积分 1 | |
![]() |
|
| 第5楼 glbosom | 发表于 2009-08-14 20:38 |
| 初级用户 发帖 17 积分 31 | |
|
不太明白你的意思 下面是我写的一个诺顿自动升级的p文
你参考下吧 @echo off color 2f for /l %%b in (10 1 31) do (mode con cols=70 lines=%%b & ping -n 1 127.1>nul) for /l %%c in (70 1 95) do mode con cols=%%c lines=30 set cdpath=%cd% set fh= -------------------------------------------- title=诺顿病毒库自动更新-----今天是:%date% ::自动删除上一次升级文件 if not exist delfile.inf goto :Main for /f %%v in ('^more ^<delfile.inf') do ( for %%w in (%cdpath%\) do ( if exist %%w\%%v del /q %%w\%%v )) setlocal enabledelayedexpansion :Main :: 日期可以带星期,但是,必须以年月日的顺序排列 :: 年份必须是四位,否则会出错 set filePath=\\10.105.10.12\c set nums=0 set day= set days=0 echo.&echo. ::echo 指定的日期是:%day% set input=1 set ouput=2 :: 提取日期 for /f "tokens=1-3 delims=-/. " %%i in ('date /t') do ( set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100 ) set /a sd-=input if %sd% leq 0 call :count :: 提取时间 for /f "tokens=1-2 delims=:" %%x in ("%time%") do ( set /a xs=%%x, fz=%%y) set /a fz+=ouput if %fz% GEQ 60 call :counttime set sm=0%sm% set sd=0%sd% set filename=%sy%%sm:~-2%%sd:~-2% :start set /a nums+=1 set sz=00%nums% set "sz1=%sz:~-3%" if exist %filePath%\%fileName%-%sz1%-x86.exe goto ok if "%sz:~-3%"=="100" goto notexist goto start :ok color 2e echo.&echo. echo %fh% echo.&echo. echo 正在拷贝 %fileName%-%sz1%-x86.exe 到本地磁盘 echo.&echo. echo %fh% echo.&echo. echo 请稍等........... echo.&echo. echo %fh% for %%b in (%cdpath%\) do ( copy /y %filePath%\%fileName%-%sz1%-x86.exe %%b>nul ) at %xs%:%fz% %cdpath%\%fileName%-%sz1%-x86.exe /q>nul @echo %fileName%-%sz1%-x86.exe>delfile.inf echo 任务已完成,即将退出 goto :colornum :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 set num=0 set str=31 %max% 31 30 31 30 31 31 30 31 30 31 for %%i in (%str%) do ( set /a num+=1 if %sm% equ !num! set days=%%i&goto :eof ) goto :eof :counttime set /a xs+=1 set /a fz-=60 if %xs% equ 24 set /a xs=0 goto :eof :notexist cls echo %fh% echo.&echo. echo 现在服务器上不存在最新的病毒库文件 echo 两秒之后自动退出 echo.&echo. echo %fh% :colornum set colornum=-1 :colorSelect set /a colornum+=1 set colorstr=edcba color 0!colorstr:~%colornum%,1! & ping -n 2 127.1>nul if not "%colornum%"=="4" goto :colorSelect goto :endnum :endnum set colsnum=95 set linesnum=30 :End color 1e set /a colsnum-=6 set /a linesnum-=2 mode con cols=%colsnum% lines=%linesnum% & ping -n 1 127.1>nul if not "%colsnum%"=="17" goto :end @exit |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |