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

[文本处理] [已解决]批处理如何复制规律随机形式的文件?

A文件夹中有以下几个文件
2008_08_08_20:00.txt
2008_08_09_20:10.txt
2008_08_10_21:03.txt
2008_08_11_19:51.txt
也就是日期+时间的形式
如何复制日期最新(也就是最后一个文件)到B文件夹中去?

PS:经大家提醒,文件名不能用冒号.这点偶举例的时候疏忽了...谢谢大家

[ 本帖最后由 tanghan 于 2009-7-22 22:01 编辑 ]

文件名一般是不包括冒号:的吧?你是不是搞错了?实在有的话试一下这个代码吧。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1-5* delims=_:."%%a in ('dir /b a:\*.txt') do (
  3.        set /a =s1=s2=s3=s4=s5=0, set temp=%%a%%b%%c%%d%%e
  4.        if !date! lss !temp! set date=!temp!&set s1=%%a,s2=%%b,s3=%%c,s4=%%d,s5=%%e
  5.        copy %%a_%%b_%%c_%%d:%%e.txt b\
  6. )
  7. pause>nul
复制代码
Still with wax

TOP

直接dir 或 + sort 不行吗(文件名长度 格式 都一样的情况应该可以吧) 也可按时间dir吧

TOP

用下sort可以简洁点吧(假设是从c:\test文件夹复制到e:\temp文件夹):
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b c:\test^|sort') do set "file=%%a"
  3. copy /y "%file%" "e:\temp\"
复制代码

[ 本帖最后由 batman 于 2009-7-21 15:18 编辑 ]
***共同提高***

TOP

似乎文件名根本就不可能有冒号呢
Still with wax

TOP

  1. @echo off
  2. set "src=A"
  3. set "dest=B"
  4. for /f "delims=" %%a in ('dir /a-d/b/o-n "%src%\*_*_*.txt') do (
  5.   copy "%src%\%%a" "%dest%"
  6.   exit /b
  7. )
复制代码

TOP

for就已经排过序了吧
  1. @echo off
  2. for %%i in (*_*_*_*.txt) do set "file=%%i"
  3. copy "%file%" "c:\"
复制代码
1

评分人数

TOP

7楼的简单一点.所以选用了这个,,成功!
其它的正在研究中...
谢谢大家..

PS:文件名不能用冒号,这里举例的时候疏忽了.谢谢大家!

TOP

返回列表