Board logo

标题: [文本处理] [已解决]批处理如何复制规律随机形式的文件? [打印本页]

作者: tanghan    时间: 2009-7-21 04:02     标题: [已解决]批处理如何复制规律随机形式的文件?

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 编辑 ]
作者: Lumiere    时间: 2009-7-21 09: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
复制代码

作者: terse    时间: 2009-7-21 11:11

直接dir 或 + sort 不行吗(文件名长度 格式 都一样的情况应该可以吧) 也可按时间dir吧
作者: batman    时间: 2009-7-21 11:15

用下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 编辑 ]
作者: Lumiere    时间: 2009-7-21 11:36

似乎文件名根本就不可能有冒号呢
作者: tireless    时间: 2009-7-21 13:57

  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. )
复制代码

作者: zhouyongjun    时间: 2009-7-21 14:29

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

作者: tanghan    时间: 2009-7-22 21:59

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

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




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