乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      【引用】定時(shí)刪除一個(gè)文件下的所有子文件夾及文件

       悟靜 2011-08-09

      請(qǐng)問(wèn)怎樣定時(shí)刪除一個(gè)文件夾內(nèi)的所有子文件夾和文件呢?同時(shí)又要保留那個(gè)父文件夾。比如我要?jiǎng)h除d:\test\ 內(nèi)的所有子文件夾和文件,但保留test這個(gè)夾子,我是win2000的域,請(qǐng)問(wèn)怎樣實(shí)現(xiàn)呢?bat可以嗎?

      回答:在win9x的年代,用deltree這個(gè)外部命令就很容解決這個(gè)問(wèn)題,不過(guò)從windows 2000 及windows xp之后,就取消了這個(gè)命令(真的是很奇怪),那么現(xiàn)在怎么解決呢?大家可能想到用 del+rd來(lái)解決這個(gè)問(wèn)題。但有個(gè)問(wèn)題,就是rd命令會(huì)刪除您指定的目錄。例如,當(dāng)前目錄結(jié)構(gòu)如下:
      D:\>attrib /s /d d:\test\*.*
      A    R  I    D:\test\1.txt          此文件帶有只讀屬性
      A   H   I    D:\test\2.txt          此文件帶有隱藏屬性
      A  S    I    D:\test\3.txt          此文件帶有系統(tǒng)屬性
           H   I    D:\test1\1             此目錄帶有隱藏屬性
      A    R  I    D:\test\1\4.txt       此文件帶有只讀屬性
          S    I    D:\test1\2             此目錄帶有系統(tǒng)屬性
      A    R  I    D:\test1\2\5.txt     此文件帶有只讀屬性

      批處理原理 如果您這么執(zhí)行命令 rd d:\test,那么rd會(huì)將test這個(gè)目錄連同其中的內(nèi)容一起刪除掉,而我們要保留test這個(gè)目錄。那么怎么辦呢?我們可以先用del把d:\test目錄下的文件刪除掉,然后再用rd把子目錄刪除掉。這個(gè)批處理的內(nèi)容如下,大家將如下內(nèi)容保存為后綴名為.bat 或者.cmd的文本文件,例如就叫 deltree.bat吧。
      ---不包含此行---
      attrib -s -h -r %1\*.* && del %1\*.* /q
      dir %1 /ad /b /s >del.txt
      for /f %%i in (del.txt) do rd %%i /s /q
      ---不包含此行---
      那么當(dāng)我們需要?jiǎng)h除test目錄的時(shí)候,就這么執(zhí)行 "deltree.bat d:\test"(不包含引號(hào))。

      批處理第一行 第一行批處理中的%1就會(huì)讀取批處理參數(shù),變成這樣 attrib -s -h -r d:\test\*.* && del d:\test\*.* /q
      先用attrib 去掉test目錄下所有文件的屬性,以保障后面的del順利執(zhí)行。
      && 是連接符號(hào),當(dāng)執(zhí)行完前面的命令后,執(zhí)行連接符后面的命令。
      del刪除 test目錄下所有文件,因?yàn)閞d命令是無(wú)法刪除test目錄下的文件的。好,test下的文件刪除完了,我們就開始刪除test目錄下的子目錄。

      批處理第二行 批處理執(zhí)行到第二行,%1讀取批處理參數(shù),就是我們?cè)赿eltree后面輸入的的 d:\test,變成這樣 dir d:\test /ad /b /s >del.txt 這里dir命令后的各參數(shù)含義如下:
       /AD          顯示具有指定屬性的目錄。從而讓后面的rd命令刪除這些目錄
      /B          使用空格式(沒(méi)有標(biāo)題信息或摘要)。避免后面的刪除命令出錯(cuò),因?yàn)閐ir命令還會(huì)輸出一些其它信息,例如“ 驅(qū)動(dòng)器 C 中的卷沒(méi)有標(biāo)簽。 卷的序列號(hào)是 EE5B-D3AF”,顯然這會(huì)導(dǎo)致rd命令出錯(cuò)。
      /S          顯示指定目錄和所有子目錄中的文件。輸出目錄及文件的完整路徑,便于后面rd命令刪除。
      執(zhí)行完這一行批處理后,在當(dāng)前目錄下會(huì)產(chǎn)生 del.txt文件,您執(zhí)行 type del.txt,會(huì)看到如下輸出:
      d:\test1\1
      d:\test1\2
      為什么要輸出到文本文件呢?為什么不直接把dir的結(jié)果輸出給rd呢?因?yàn)閐ir的結(jié)果會(huì)有多行,如果一行一行寫,不是太麻煩了嗎?而且將來(lái)實(shí)際運(yùn)用批處理的時(shí)候,我們也無(wú)法預(yù)測(cè)目標(biāo)文件夾下會(huì)有多少個(gè)子目錄。將dir結(jié)果輸出到文本文件,然后讓rd去讀不是很方便嗎?

      批處理第三行 好,我們已經(jīng)將要?jiǎng)h除的子目錄列表輸出到文本文件del.txt中了,只要使用rd命令刪除這些目錄就好了。但實(shí)際上rd本身沒(méi)有讀取文本文件的功能,我們用for來(lái)解決這個(gè)問(wèn)題。批處理執(zhí)行到了最后一行:for /f %%i in (del.txt) do rd %%i /s /q
      %%i是在for語(yǔ)句中使用的循環(huán)變量,這個(gè)變量每使用一次,就從 del.txt中讀取一行,作為變量值,然后for負(fù)責(zé)將這個(gè)變量傳遞給后面 do執(zhí)行的命令中,那么for依次執(zhí)行循環(huán)所形成的命令就是這樣的:
      第一次循環(huán) rd d:\test1\1 /s /q
      第二次循環(huán) rd d:\test1\2 /s /q
      gnaw0725注:關(guān)于for循環(huán)的更多解釋請(qǐng)參考 http://gnaw0725./logs/4888698.html
      這里的rd參數(shù)含義如下:
      /S      除目錄本身外,還將刪除指定目錄下的所有子目錄和文件。用于刪除目錄樹。
      /Q      安靜模式,帶 /S 刪除目錄樹時(shí)不要求確認(rèn)

      故障排查 好,到此位置,deltree.bat這個(gè)批處理就刪除了d:\test下的所有文件和文件夾,而無(wú)論它們帶什么屬性。如果大家在使用這個(gè)批處理的過(guò)程中出現(xiàn)了問(wèn)題,例如沒(méi)有刪除掉文件,那么如何進(jìn)行故障排查呢?我們可以有兩個(gè)check point:
      批處理參數(shù)獲取 就是考察批處理是否正確獲取了參數(shù),也就是我們輸入的目標(biāo)文件夾,我們可以在批處理的最前面加一個(gè)echo %1 ,看看結(jié)果,就是這樣:
      echo %1
      attrib -s -h -r %1\*.* && del %1\*.* /q
      gnaw0725注:批處理可以有9個(gè)參數(shù),%0代表批處理自己,第一個(gè)參數(shù)%1,第二個(gè)%2,……依此類推
      子目錄輸出列表 就是del.txt,您可以輸入 type del.txt,如果正常,輸出的內(nèi)容應(yīng)該是d:\test下的所有子目錄。


      本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/ljc007/archive/2010/01/16/5198756.aspx

       

      日期時(shí)間]批處理刪除指定天數(shù)日期之前的文件夾 收藏 

      【方案一】BAT + REG + VBS


      view plaincopy to clipboardprint?

      @echo off   

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾的最后修改日期為準(zhǔn))的文件夾。   

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。   

      ::本例調(diào)用了臨時(shí)VBS代碼進(jìn)行日期計(jì)算   

      ::本例為兼容不同的日期格式,調(diào)用reg命令(XP系統(tǒng)自帶)統(tǒng)一設(shè)置日期格式,   

      ::處理完畢之后再把日期格式恢復(fù)成原來(lái)的狀態(tài)。   

        

      rem 指定待刪除文件夾的存放路徑   

      set SrcDir=C:\Test   

      rem 指定天數(shù)   

      set DaysAgo=1   

      for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (   

          set "RegDateOld=%%a"  

      )   

      set RegDateOld=%RegDateOld:~-8%   

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul   

      >"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%   

      >>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)   

      >>"%temp%\DstDate.vbs" echo wscript.echo FmtDate   

      for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (   

          set "DstDate=%%a"  

      )   

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%   

      for /d    %%a in ("%SrcDir%\*.*") do (   

          if "%%~ta" leq "%DstDate%" (   

              if exist "%%a\"  

                  echo rd /s /q "%%a"  

              )   

          )   

      )   

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul   

      pause  

      @echo off

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾的最后修改日期為準(zhǔn))的文件夾。

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。

      ::本例調(diào)用了臨時(shí)VBS代碼進(jìn)行日期計(jì)算

      ::本例為兼容不同的日期格式,調(diào)用reg命令(XP系統(tǒng)自帶)統(tǒng)一設(shè)置日期格式,

      ::處理完畢之后再把日期格式恢復(fù)成原來(lái)的狀態(tài)。


      rem 指定待刪除文件夾的存放路徑

      set SrcDir=C:\Test

      rem 指定天數(shù)

      set DaysAgo=1

      for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (

          set "RegDateOld=%%a"

      )

      set RegDateOld=%RegDateOld:~-8%

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul

      >"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%

      >>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)

      >>"%temp%\DstDate.vbs" echo wscript.echo FmtDate

      for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (

          set "DstDate=%%a"

      )

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

      for /d    %%a in ("%SrcDir%\*.*") do (

          if "%%~ta" leq "%DstDate%" (

              if exist "%%a\"

                  echo rd /s /q "%%a"

              )

          )

      )

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul

      pause 


      【方案二】BAT + REG + Ritchie Lawrence 日期函數(shù)


      view plaincopy to clipboardprint?

      @echo off   

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾的最后修改日期為準(zhǔn))的文件夾。   

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。   

      ::本例調(diào)用了 Ritchie Lawrence 的日期函數(shù)進(jìn)行日期計(jì)算   

      ::日期轉(zhuǎn)換的核心算法請(qǐng)參考http://bbs./thread-3056-1-1.html   

      ::本例為兼容不同的日期格式,調(diào)用reg命令(XP系統(tǒng)自帶)統(tǒng)一設(shè)置日期格式,   

      ::處理完畢之后再把日期格式恢復(fù)成原來(lái)的狀態(tài)。   

        

      rem 指定待刪除文件夾的存放路徑   

      set SrcDir=C:\Test   

      rem 指定天數(shù)   

      set DaysAgo=1   

      for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (   

          set "RegDateOld=%%a"  

      )   

      set RegDateOld=%RegDateOld:~-8%   

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul   

      call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays   

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul   

      set /a PassDays-=%DaysAgo%   

      call :DaysToDate %PassDays% DstYear DstMonth DstDay   

      set DstDate=%DstYear%%DstMonth%%DstDay%   

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%   

      for /d    %%a in ("%SrcDir%\*.*") do (   

          if "%%~ta" leq "%DstDate%" (   

              if exist "%%a\"  

                  echo rd /s /q "%%a"  

              )   

          )   

      )   

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul   

      pause   

      goto :eof   

        

      :DateToDays %yy% %mm% %dd% days   

      setlocal ENABLEEXTENSIONS   

      set yy=%1&set mm=%2&set dd=%3   

      if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)   

      set /a dd=100%dd%%%100,mm=100%mm%%%100   

      set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2   

      set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633   

      endlocal&set %4=%j%&goto :EOF   

        

      :DaysToDate %days% yy mm dd   

      setlocal ENABLEEXTENSIONS   

      set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a   

      set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5   

      set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10   

      (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)   

      endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF  

      @echo off

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾的最后修改日期為準(zhǔn))的文件夾。

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。

      ::本例調(diào)用了 Ritchie Lawrence 的日期函數(shù)進(jìn)行日期計(jì)算

      ::日期轉(zhuǎn)換的核心算法請(qǐng)參考http://bbs./thread-3056-1-1.html

      ::本例為兼容不同的日期格式,調(diào)用reg命令(XP系統(tǒng)自帶)統(tǒng)一設(shè)置日期格式,

      ::處理完畢之后再把日期格式恢復(fù)成原來(lái)的狀態(tài)。


      rem 指定待刪除文件夾的存放路徑

      set SrcDir=C:\Test

      rem 指定天數(shù)

      set DaysAgo=1

      for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (

          set "RegDateOld=%%a"

      )

      set RegDateOld=%RegDateOld:~-8%

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul

      call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul

      set /a PassDays-=%DaysAgo%

      call :DaysToDate %PassDays% DstYear DstMonth DstDay

      set DstDate=%DstYear%%DstMonth%%DstDay%

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

      for /d    %%a in ("%SrcDir%\*.*") do (

          if "%%~ta" leq "%DstDate%" (

              if exist "%%a\"

                  echo rd /s /q "%%a"

              )

          )

      )

      reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul

      pause

      goto :eof


      :DateToDays %yy% %mm% %dd% days

      setlocal ENABLEEXTENSIONS

      set yy=%1&set mm=%2&set dd=%3

      if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)

      set /a dd=100%dd%%%100,mm=100%mm%%%100

      set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2

      set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

      endlocal&set %4=%j%&goto :EOF


      :DaysToDate %days% yy mm dd

      setlocal ENABLEEXTENSIONS

      set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a

      set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5

      set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10

      (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)

      endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF 


      【方案三】BAT + VBS


      view plaincopy to clipboardprint?

      @echo off   

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾的最后修改日期為準(zhǔn))的文件夾。   

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。   

      ::本例調(diào)用了臨時(shí)VBS代碼進(jìn)行日期計(jì)算,并統(tǒng)一設(shè)置系統(tǒng)日期格式,處理完畢   

      ::之后再把日期格式恢復(fù)成原來(lái)的狀態(tài)。擺脫了對(duì)reg命令(XP系統(tǒng)自帶)的依賴。   

        

      rem 指定待刪除文件夾的存放路徑   

      set SrcDir=C:\test   

      rem 指定天數(shù)   

      set DaysAgo=1   

      >"%temp%\BackupDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")   

      >>"%temp%\BackupDate.vbs" echo WScript.Echo WshShell.RegRead ("HKEY_CURRENT_USER\Control Panel\International\sShortDate")   

      for /f %%a in ('cscript /nologo "%temp%\BackupDate.vbs"') do (   

          set "RegDateOld=%%a"  

      )   

      >"%temp%\UnifyDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")   

      >>"%temp%\UnifyDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER\Control Panel\International\sShortDate", "yyyy-M-d", "REG_SZ"  

      cscript /nologo "%temp%\UnifyDate.vbs"  

      >"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%   

      >>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)   

      >>"%temp%\DstDate.vbs" echo wscript.echo FmtDate   

      for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (   

          set "DstDate=%%a"  

      )   

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%   

      for /d    %%a in ("%SrcDir%\*.*") do (   

          if "%%~ta" leq "%DstDate%" (   

              if exist "%%a\"  

                  echo rd /s /q "%%a"  

              )   

          )   

      )   

      >"%temp%\RecoverDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")   

      >>"%temp%\RecoverDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER\Control Panel\International\sShortDate", "%RegDateOld%", "REG_SZ"  

      cscript /nologo "%temp%\RecoverDate.vbs"  

      pause  

      @echo off

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾的最后修改日期為準(zhǔn))的文件夾。

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。

      ::本例調(diào)用了臨時(shí)VBS代碼進(jìn)行日期計(jì)算,并統(tǒng)一設(shè)置系統(tǒng)日期格式,處理完畢

      ::之后再把日期格式恢復(fù)成原來(lái)的狀態(tài)。擺脫了對(duì)reg命令(XP系統(tǒng)自帶)的依賴。


      rem 指定待刪除文件夾的存放路徑

      set SrcDir=C:\test

      rem 指定天數(shù)

      set DaysAgo=1

      >"%temp%\BackupDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")

      >>"%temp%\BackupDate.vbs" echo WScript.Echo WshShell.RegRead ("HKEY_CURRENT_USER\Control Panel\International\sShortDate")

      for /f %%a in ('cscript /nologo "%temp%\BackupDate.vbs"') do (

          set "RegDateOld=%%a"

      )

      >"%temp%\UnifyDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")

      >>"%temp%\UnifyDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER\Control Panel\International\sShortDate", "yyyy-M-d", "REG_SZ"

      cscript /nologo "%temp%\UnifyDate.vbs"

      >"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%

      >>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)

      >>"%temp%\DstDate.vbs" echo wscript.echo FmtDate

      for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (

          set "DstDate=%%a"

      )

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

      for /d    %%a in ("%SrcDir%\*.*") do (

          if "%%~ta" leq "%DstDate%" (

              if exist "%%a\"

                  echo rd /s /q "%%a"

              )

          )

      )

      >"%temp%\RecoverDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")

      >>"%temp%\RecoverDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER\Control Panel\International\sShortDate", "%RegDateOld%", "REG_SZ"

      cscript /nologo "%temp%\RecoverDate.vbs"

      pause 


      【方案四】字符串截取


      view plaincopy to clipboardprint?

      @echo off   

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾名中包含的日期字符串為準(zhǔn))的文件夾。   

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。   

      ::本例假設(shè)文件夾名中包含的日期字符串(比如:Archive-2009-12-25)   

        

      rem 指定待刪除文件夾的存放路徑   

      set SrcDir=C:\test   

      rem 指定天數(shù)   

      set DaysAgo=1   

        

      >"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%   

      >>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)   

      >>"%temp%\DstDate.vbs" echo wscript.echo FmtDate   

      for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (   

        set "DstDate=%%a"  

      )   

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%   

        

      setlocal enabledelayedexpansion   

      for /d  %%a in ("%SrcDir%\*.*") do (   

        if "%%~ta" leq "%DstDate%" (   

          set "FolderDate=%%~na"  

          set "FolderDate=!FolderDate:~8,10!"  

          if "!FolderDate!" leq "%DstDate%" (   

              if exist "%%a\" (   

                  echo rd /s /q "%%a"  

              )   

          )   

        )   

      )   

      endlocal   

      pause  

      @echo off

      ::演示:刪除指定路徑下指定天數(shù)之前(以文件夾名中包含的日期字符串為準(zhǔn))的文件夾。

      ::如果演示結(jié)果無(wú)誤,把rd前面的echo去掉,即可實(shí)現(xiàn)真正刪除。

      ::本例假設(shè)文件夾名中包含的日期字符串(比如:Archive-2009-12-25)


      rem 指定待刪除文件夾的存放路徑

      set SrcDir=C:\test

      rem 指定天數(shù)

      set DaysAgo=1


      >"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%

      >>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)

      >>"%temp%\DstDate.vbs" echo wscript.echo FmtDate

      for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (

        set "DstDate=%%a"

      )

      set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%


      setlocal enabledelayedexpansion

      for /d  %%a in ("%SrcDir%\*.*") do (

        if "%%~ta" leq "%DstDate%" (

          set "FolderDate=%%~na"

          set "FolderDate=!FolderDate:~8,10!"

          if "!FolderDate!" leq "%DstDate%" (

              if exist "%%a\" (

                  echo rd /s /q "%%a"

              )

          )

        )

      )

      endlocal

      pause 


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多