标题: [文本处理] [已解决]批处理如何找出最新版本的文件? [打印本页]
作者: jb2002520 时间: 2016-3-2 11:00 标题: [已解决]批处理如何找出最新版本的文件?
某一个文件夹里,有很多的多版本的文件,文件名是一样的,但是,在中间的版本号不一样,用来表示此文件的修改版本
会产生大量的前期版本文件,求一个一次性操作删除旧版本文件的BAT。如下:
黑色框起来的只要保存ST2.574.001DL_D_ST3112-1-XC温度控制器总成电路图.PDF
红色框起来的只要保存 ST2.574.001MX_E_ST3112-1-XC温度控制器总成明细表.pdf
别的版本区分开。最好是能分2个文件夹。不行就把老版本删除。
作者: jb2002520 时间: 2016-3-2 11:19
没有人吗?大神们快出来,本人菜鸟,实在不会做
作者: flyinnet9 时间: 2016-3-2 11:25
本帖最后由 flyinnet9 于 2016-3-2 11:26 编辑
- @echo off
- md 最新版本
- for /f "tokens=1-2* delims=_" %%a in ('dir /a-d /b /o-n *.pdf') do (
- if not defined %%a move "%%a_%%b_%%c" .\最新版本\ >nul
- set %%a=1
- )
复制代码
作者: jb2002520 时间: 2016-3-2 12:03
回复 3# flyinnet9
谢谢大神回复。基本满足要求。但是ST1.107.001DL_A_电路图1、ST1.107.001DL_A_电路图2、ST1.107.001DL_A_电路图3是3个不同的文件。不是不同版本。因此应该有3个最新版本。
作者: jb2002520 时间: 2016-3-2 12:07
回复 3# flyinnet9
ST1.107.001DL_A_电路图1、ST1.107.001DL_B_电路图1这2个文件最新版本是ST1.107.001DL_B_电路图1 您给出的程序可以做到。
作者: jb2002520 时间: 2016-3-2 12:31
大神都吃饭去了
作者: codegay 时间: 2016-3-2 13:26
- """
- python取出当前目录下最新修改的文件.py
- http://bbs.bathome.net/thread-39535-1-1.html
- 2016年3月2日 11:44:35 codegay
- 参考资料 python glob模块 通配符
- http://blog.sina.com.cn/s/blog_5ee725480101bf94.html
- """
- import os
- import glob
- import shutil
- #os.mkdir("电路图")
- fs=glob.glob("*总成电路图.pdf")
- 电路图={r:os.stat(r).st_mtime for r in fs}
- ns=max(电路图)
- print("最新",max(电路图))
- shutil.copy(ns,"./电路图/")
-
- fs=glob.glob("*总成明细表.pdf")
- 明细表={r:os.stat(r).st_mtime for r in fs}
- print("最新",max(明细表))
复制代码
作者: jb2002520 时间: 2016-3-2 13:52
回复 7# codegay
没有反应
作者: flyinnet9 时间: 2016-3-2 16:41
本帖最后由 flyinnet9 于 2016-3-2 16:43 编辑
- @echo off
- md 最新版本
- for /f "tokens=1-2* delims=_" %%a in ('dir /a-d /b /o-n *.pdf') do (
- if not defined %%a (
- move %%a_%%b_%%c .\最新版本\ >nul
- set %%a=1
- set %%c=1
- ) else (
- if not defined %%c (
- move %%a_%%b_%%c .\最新版本\ >nul
- set %%c=1
- )
- )
- )
复制代码
作者: jb2002520 时间: 2016-3-2 17:09
回复 9# flyinnet9
谢谢大神,你的答案完全满足我。
作者: gawk 时间: 2016-3-3 13:47
回复 8# jb2002520
7楼是Python代码,要想在Windows里面运行,需要先搭建好Python环境。
作者: codegay 时间: 2016-3-3 14:56
回复 11# gawk
哈哈。我代码有错误。max(dict)是取不到字典最大值的。我还没改好呢。
作者: WHY 时间: 2016-3-3 23:09
借9#代码一用- @echo off
- md 最新版本
- for /f "tokens=1-2* delims=_" %%a in ('dir /a-d /b /o-n *.pdf') do (
- if not defined _%%a_%%~nc (
- move "%%a_%%b_%%c" .\最新版本\ >nul
- set _%%a_%%~nc=1
- )
- )
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |