[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 67# 喃喃努努


    这样直接比较确实有问题。你试试顶楼的reg add命令修改注册表之后,看看dir命令的显示结果能否改成yyyy-mm-dd

TOP

回复  喃喃努努 修改这一句
forfiles 发表于 2012-8-30 15:58


谢谢了,但是还有问题,
  1. echo  %DstDate%
  2. pause
  3. for /f "skip=3 tokens=1,3,*" %%a in ('dir %SrcDir%\*.* /tw /od') do (
  4.           echo del /f /q %%a  %SrcDir%\%%c
  5. )
  6. pause
  7. for /f "skip=3 tokens=1,3,*" %%a in ('dir %SrcDir%\*.* /tw /od') do (
  8.     if "%%a" leq "%DstDate%" (
  9.           echo del /f /q %SrcDir%\%%c
  10.     )
  11. )
  12. pause
复制代码
运行前两步都行,但是第三步还是不行,貌似还是不能比较的情况, if "%%a" leq "%DstDate%"这个里面变量加引号和不加引号都不行。

TOP

回复 65# 喃喃努努
  1. set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
复制代码
修改这一句

TOP

回复  喃喃努努

建议你从 dir 的输出格式 和 nt 下日期的输出格式(dir) 和 DstDate 的格式是否一致来排 ...
fatcat 发表于 2012-8-30 10:57



    确实日期格式有问题,我应该如何改呢?NT系统下面dir 输出文件的日期格式为mm/dd/yy,而DstDate为yyyy-mm-dd.

TOP

回复  喃喃努努

建议你从 dir 的输出格式 和 nt 下日期的输出格式(dir) 和 DstDate 的格式是否一致来排 ...
fatcat 发表于 2012-8-30 10:57



    谢谢,我去看一下。

TOP

回复 62# 喃喃努努

建议你从 dir 的输出格式 和 nt 下日期的输出格式(dir) 和 DstDate 的格式是否一致来排查

TOP

求楼主帮忙啊,这篇贴太棒了,对我太有用了,但是我在NT系统里面试了一下运行不成功,经过仔细排查后,我发现是
  1. for /r "%SrcDir%" %%a in (*.*) do (
  2.     if "%%~ta" leq "%DstDate%" (
  3.         if exist "%%a" (
  4.             echo del /f /q "%%a"
  5.         )
  6.     )
  7. )
复制代码
这句有问题,在NT系统的for命令下面没有"%%~ta"取时间的命令,因此我另寻他法
  1. for /f "skip=3 tokens=1,3,*" %%a in ('dir %SrcDir%\*.* /tw /od') do (
  2.     if %%a leq %DstDate% (
  3.            del /f /q "%SrcDir%\%%c"
  4.     )
  5. )
复制代码
在XP系统下面运行正常,但是到NT系统下面就不能正常运行,也找不到原因,请大家给帮忙找找原因,谢谢~~~~~

TOP

超强悍好用,不过我需要慢慢消化一下。

TOP

回复 1# Batcher


    楼主大人,你好!
    我想删除n天之前的文件(使用文件中包含的日期判断)
    我的文件为固定格式IN931.yyyy.mm.dd.*                ------其中*表示固定长度的数字序号
    请教该如何修改方案六实现此功能,望赐教

TOP

回复 58# botey


批处理删除指定天数日期之前的文件夹
http://www.bathome.net/thread-3503-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 56# toncoolove


系统日期格式是由一个注册表键值决定的,你可以选择一个合适的解决方法:
方法1:修改注册表键值
方法2:自己在月份和日期前面补0
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 toncoolove 于 2011-11-28 15:52 编辑

回复 54# Batcher


    楼主,谢谢你的方案六, 我测试了一下, 发现:
    if "!FileDate!" leq "%DstDate%"  这句
  若 "!FileDate!"  值是 2011-11-3 ,  "%DstDate%" 的值是 2011-11-23 时,   判断的结果为true,  命令把判断为 2011-11-3 比 2011-11-23 大,
   由于我的文件名生成的问题, 应该生成2011-11-03, 所以引起以上问题, 谢谢你!

TOP

回复 51# cuipengfei


不是不行,是你还没有学会怎样使用。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 53# toncoolove


请参考方案六
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# Batcher


    楼主你好!
    我用了你的方案五, 最近业务增加的一点要求,  之前设置是删除五天之前的备份文件, set DaysAgo=5,  现在需求是, 每月1号和15号的备份文件不删除.
   
    文件格式为"abc_2011-11-28_.rar".

    我的思路有两个:
    1.还是从文件修改日期入手, 根据判断该文件的修改时间进行删除.

    2.从文件名的固定格式入手,  例如, 包含 "-1_" 或者 "-15_" 这两种字符时, 不进行删除.

    请教楼主, 怎么修改方案五能比较简单的完成上诉的需求呢? 如果不能, 我参考方案几呢?
    本人是批处理脚本的菜鸟, 期待楼主的宝贵答案,谢谢!

TOP

返回列表