Board logo

标题: [文件操作] 批处理如何循环改名移动文件? [打印本页]

作者: zhifuz    时间: 2013-3-23 19:26     标题: 批处理如何循环改名移动文件?

写一个批处理文件
c:\1\目录下一个文件 20130323_001.jpg 拷贝到  c:\2\下,十分钟后,将c:\1\目录下的文件改名为20130323_002.jpg 再拷贝到c:\2\目录下。201303223为今天日期,到24日再更改为20130324后面_001为流水号。每次增加1.
作者: zhifuz    时间: 2013-3-23 20:04

不取那个日期也行,后面流水号增加就可以。感谢
作者: CrLf    时间: 2013-3-24 20:53

试试:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "date="
  3. for /f "tokens=1-3 delims=/\-: " %%a in ("!date!") do set dt=%%a%%b%%c
  4. for %%a in ("c:\1\*_*.jpg") do (
  5.    set "file=%%a"
  6.    for /f "tokens=2 delims=_." %%b in ("%%a") do set n=1%%b
  7. )
  8. for /l %%a in () do (
  9.    set /a n+=1
  10.    move /y "c:\1\!file!" "c:\1\!dt!_!n:~-3!.jpg"
  11.    set "file=!dt!_!n:~-3!.jpg"
  12.    copy /y "c:\1\!file!" "c:\2\!file!"
  13.    ping /n 600 127.1 >nul
  14. )
复制代码

作者: zhifuz    时间: 2013-3-24 23:56

非常感谢楼上。
我试了一下 能跑起来
开始时候提示  系统找不到指定文件
ping 不是内部或外部命令 也不是可运行的程序 或批处理文件
过了一小会,提示复制成功
c:\2\下产生很多文件,似乎拷贝文件间隔时间非常短。

是不是我这缺什么可执行文件?
作者: Batcher    时间: 2013-3-25 17:31

回复 4# zhifuz


右键单击“我的电脑”→“属性”→“高级”→“环境变量”→选中path系统环境变量→“编辑”→在“变量值”输入框开头添加以下内容:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
作者: zhifuz    时间: 2013-3-25 22:49

楼上哥们,我加上环境变量直接就提示
文件名、目录名或卷标语法不正确
系统找不到指定的文件

不用取前面日期。直接把流水号增加就行,简单点能用我以后再改就可以,感谢。
作者: BAT-VBS    时间: 2013-3-26 13:08

回复 6# zhifuz


    把@echo off删掉,完整的执行过程贴出来看看。
作者: zhifuz    时间: 2013-3-26 13:36

使用上面的代码 换了一台计算机 就执行不下去了。提示
文件名、目录名或卷标语法不正确
系统找不到指定的文件
删除掉@echo off  执行后一闪而过,c:\2\文件夹下产生文件




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