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

[文本处理] [已解决]批处理如何找出最新版本的文件?

某一个文件夹里,有很多的多版本的文件,文件名是一样的,但是,在中间的版本号不一样,用来表示此文件的修改版本
会产生大量的前期版本文件,求一个一次性操作删除旧版本文件的BAT。如下:

黑色框起来的只要保存ST2.574.001DL_D_ST3112-1-XC温度控制器总成电路图.PDF
红色框起来的只要保存 ST2.574.001MX_E_ST3112-1-XC温度控制器总成明细表.pdf
别的版本区分开。最好是能分2个文件夹。不行就把老版本删除。
1

评分人数

没有人吗?大神们快出来,本人菜鸟,实在不会做

TOP

本帖最后由 flyinnet9 于 2016-3-2 11:26 编辑
  1. @echo off
  2. md 最新版本
  3. for /f "tokens=1-2* delims=_" %%a in ('dir /a-d /b /o-n *.pdf') do (
  4.   if not defined %%a move "%%a_%%b_%%c" .\最新版本\ >nul
  5.   set %%a=1
  6. )
复制代码

TOP

回复 3# flyinnet9
谢谢大神回复。基本满足要求。但是ST1.107.001DL_A_电路图1、ST1.107.001DL_A_电路图2、ST1.107.001DL_A_电路图3是3个不同的文件。不是不同版本。因此应该有3个最新版本。

TOP

回复 3# flyinnet9
ST1.107.001DL_A_电路图1、ST1.107.001DL_B_电路图1这2个文件最新版本是ST1.107.001DL_B_电路图1  您给出的程序可以做到。

TOP

大神都吃饭去了

TOP

  1. """
  2. python取出当前目录下最新修改的文件.py
  3. http://bbs.bathome.net/thread-39535-1-1.html
  4. 2016年3月2日 11:44:35 codegay
  5. 参考资料 python glob模块 通配符
  6. http://blog.sina.com.cn/s/blog_5ee725480101bf94.html
  7. """
  8. import os
  9. import glob
  10. import shutil
  11. #os.mkdir("电路图")
  12. fs=glob.glob("*总成电路图.pdf")
  13. 电路图={r:os.stat(r).st_mtime for r in fs}
  14. ns=max(电路图)
  15. print("最新",max(电路图))
  16. shutil.copy(ns,"./电路图/")
  17. fs=glob.glob("*总成明细表.pdf")
  18. 明细表={r:os.stat(r).st_mtime for r in fs}
  19. print("最新",max(明细表))
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 7# codegay


    没有反应

TOP

本帖最后由 flyinnet9 于 2016-3-2 16:43 编辑
  1. @echo off
  2. md 最新版本
  3. for /f "tokens=1-2* delims=_" %%a in ('dir /a-d /b /o-n *.pdf') do (
  4.   if not defined %%a (
  5.     move %%a_%%b_%%c .\最新版本\ >nul
  6.     set %%a=1
  7.     set %%c=1
  8.   ) else (
  9.     if not defined %%c (
  10.       move %%a_%%b_%%c .\最新版本\ >nul
  11.       set %%c=1
  12.     )
  13.   )
  14. )
复制代码

TOP

回复 9# flyinnet9

谢谢大神,你的答案完全满足我。

TOP

回复 8# jb2002520


    7楼是Python代码,要想在Windows里面运行,需要先搭建好Python环境。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 11# gawk


    哈哈。我代码有错误。max(dict)是取不到字典最大值的。我还没改好呢。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

借9#代码一用
  1. @echo off
  2. md 最新版本
  3. for /f "tokens=1-2* delims=_" %%a in ('dir /a-d /b /o-n *.pdf') do (
  4.   if not defined _%%a_%%~nc (
  5.     move "%%a_%%b_%%c" .\最新版本\ >nul
  6.     set _%%a_%%~nc=1
  7.   )
  8. )
复制代码

TOP

返回列表