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

[文件操作] [已解决]批处理实现复制时重命名(有点复杂)

本帖最后由 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 的,不知道怎么解决
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

TOP

无人回答。。
问题已经在贴吧里搞定了,http://tieba.baidu.com/p/1981715789

TOP

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

TOP

估计很难搞定的

TOP

估计很难搞定的

TOP

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

回复 6# wangjile


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

TOP

返回列表