Board logo

标题: [文本处理] 批处理怎样删除指定天数日期之前的文件夹? [打印本页]

作者: caicai    时间: 2013-8-9 14:53     标题: 批处理怎样删除指定天数日期之前的文件夹?

已经找到相关的批处理程序,不过运行一直提示语法错误。

有三个方案http://chiensq.blog.163.com/blog/static/103562820103311313371/


以方案三为例子:
【方案三】BAT + VBS

@echo off

::演示:删除指定路径下指定天数之前(以文件夹的最后修改日期为准)的文件夹。

::如果演示结果无误,把rd前面的echo去掉,即可实现真正删除。

::本例调用了临时VBS代码进行日期计算,并统一设置系统日期格式,处理完毕

::之后再把日期格式恢复成原来的状态。摆脱了对reg命令(XP系统自带)的依赖。



rem 指定待删除文件夹的存放路径

set SrcDir=C:\test

rem 指定天数

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


总是在运行到红色字体部分的代码的时候提示“命令语法不正确”
请各位高手帮忙看看错哪里了?
另外,红色字体的部分是不是多了一个右括号?网上有很多份代码,都这么写的,我估计第一份写错了,其他的都是复制的。

作者: Batcher    时间: 2013-8-9 21:40

你看看是不是他们抄代码的时候漏掉了什么
http://www.bathome.net/thread-3503-1-1.html




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2