Board logo

标题: [文件操作] [已解决]批处理实现复制时重命名(有点复杂) [打印本页]

作者: zytedwards    时间: 2012-11-12 12:29     标题: [已解决]批处理实现复制时重命名(有点复杂)

本帖最后由 zytedwards 于 2012-11-12 23:04 编辑

原有的代码
  1. @echo off
  2. set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
  3. set fail=出问题的
  4. set backup=备份
  5. set databackup=数据备份\
  6. if not exist "e:\a\%today%" md "e:\a\%today%"
  7. if not exist "e:\a\%databackup%" md "e:\a\%databackup%"
  8. copy e:\a\a.txt e:\a\%databackup%%backup%%today%.txt
  9. for /f "usebackq delims=" %%a in ("e:\a\a.txt")do echo e:\b\%%a.jpg>>e:\a\b.txt
  10. for /f "usebackq delims=" %%a in ("e:\a\b.txt") do if exist "%%~fa" copy "%%~fa" "e:\a\%today%"
  11. for /f "usebackq delims=" %%a in ("e:\a\b.txt") do IF NOT EXIST %%~nxa echo %%~nxa>>e:\a\temp.txt
  12. for /f "usebackq delims=. tokens=1" %%b in ("e:\a\temp.txt") do echo %%b>>e:\a\%fail%_%today%.txt
  13. pause
复制代码
a.txt 里面有
冬天图
冬天图
夏天图
春天图
春天图

上面的代码很简单的,就是先生成一个b.txt,补全路径
b.txt 里面有
e:\b\冬天图.jpg
e:\b\冬天图.jpg
e:\b\夏天图.jpg
e:\b\春天图.jpg
e:\b\春天图.jpg

e:\b\里面只有冬天图夏天图,没有春天图
所以把冬天图和夏天图这些存在的图复制到e:\a\,不存在的图就写到txt

其实我的代码已经实现了上述,但是由于存在两个冬天图,它会把相同的给覆盖了,我是想重命名为冬天图1 冬天图2 的,不知道怎么解决
作者: zytedwards    时间: 2012-11-12 17:05

上面那段代码的意思是把a.txt里面的文件找出来,从e:\b\复制到e:\a\,但因为a.txt里面有几个相同的文件,想在复制的时候如果碰到e:\a\里同名的,就加上编号改成xxx1.jpg,xxx2.jpg,xxx3.jpg
作者: zytedwards    时间: 2012-11-12 23:03

无人回答。。
问题已经在贴吧里搞定了,http://tieba.baidu.com/p/1981715789
作者: wangjile    时间: 2012-11-12 23:07

曾经试过,没有实现,有个思路:用if判断,如果存在复制的时候如果碰到e:\a\里同名的,先从e:\b\复制到e:\c\,并重命名为xxx1.jpg,再把e:\c\xxx1.jpg copy回e:\a\
作者: wangjile    时间: 2012-11-12 23:08

估计很难搞定的
作者: wangjile    时间: 2012-11-12 23:08

估计很难搞定的
作者: zytedwards    时间: 2012-11-12 23:18

本帖最后由 zytedwards 于 2012-11-12 23:20 编辑

回复 6# wangjile


    已经搞定了,可以点击楼上的贴吧链接看看的,谢谢关注
    就是在复制前检验有没有这个jpg,有的话复制(set num 不断+1)




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