逆水行船

别人的天堂,是我的异乡;无端的繁华,倍添我的惆怅

 

批处理文件的学习

最近在学习写批处理文件,感觉批处理文件语法和其他语言语法相差不是一般的大。

我把最近写的一个自动添加昨日修改文件日志的批处理程序放在这儿:

set path=F:\xumingxsh\

set upath=F:\xumingxshother\

set index=0

 @echo off&setlocal enabledelayedexpansion
 set yyyy=%date:~0,4%
 set mm=%date:~5,2%
 set dd=%date:~8,2%
 set /a od=!dd!-1
 if !od!==0 call :dd0
 if !mm!==0 call :mm0
 
 set  kk=!yyyy!-!mm!-!od!
 set fd=F:\xumingxsh\ivsmlog\!kk!.txt
 if exist !fd! (
  rem echo 完成昨日工作备份
  rem goto :eof
  del !fd!
 )
 DIR /A:D /B >>F:\xumingxsh\ivsmlog\!kk!.txt

 echo 查找文件夹%path%中!kk:~0,10!修改的文件:>>!fd!
 echo 查找文件夹%path%中!kk:~0,10!
 
 call :ForeachDirf %path% !fd! !kk:~0,10!
 
 echo  "\r\n"  
 echo  "\r\n"   
 
 
 echo 查找文件夹%upath%中!kk:~0,10!修改的文件:>>!fd!
 echo 查找文件夹%upath%中!kk:~0,10!修改的文件:
 call :ForeachDirf %upath% !fd! !kk:~0,10!
 echo !fd!
 
 if not exist !fd! (
  echo 文件不存在
  )
 start notepad !fd! 
 pause


:ForeachDirf:
 for /D %%a in (%1\*) do (
  if not "%%a" equ ".svn" (
  
  set dt1=%%~ta&set t1=!dt1:~0,10!
   if "!t1!" equ "%3" (
     echo %%a
     echo %%a !dt1!>>%2
   )
   
   for  %%s in (%%a\*.*) do (
    set dt=%%~ts&set t=!dt:~0,10!
    call :WriteFile %%~nxs %2 !t! "!dt!" %3 %%~xs %%~as
   )
   call :ForeachDirf %%a %2 %3   
  )
 )
goto :eof

rem 1 文件名 2 写入文件 3 10位日期 4 全日期 5 比较日期 6 后缀
:WriteFile
 if not "%3" equ "%5" (
  goto :eof
 ) 
 if not "%6" equ ".svn-base" (
  if not "%6" equ ".obj" (
   if not "%6" equ ".dll" (
    if not "%6" equ ".idb" (
     if not "%6" equ ".pdb" (
      if not "%6" equ ".ncb" (          
       if not "%6" equ ".exe" (
   echo   %1 %4
   set /a index=%index% + 1
   echo   %index% %1 %4 %7 >>%2
 )))))))

goto :eof

 

 

 

posted on 2011-08-26 13:03  荣-  阅读(297)  评论(0编辑  收藏  举报

导航