标题: [文件操作] [已解决]批处理实现复制时重命名(有点复杂) [打印本页]
作者: zytedwards 时间: 2012-11-12 12:29 标题: [已解决]批处理实现复制时重命名(有点复杂)
本帖最后由 zytedwards 于 2012-11-12 23:04 编辑
原有的代码- @echo off
- set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
- set fail=出问题的
- set backup=备份
- set databackup=数据备份\
-
- if not exist "e:\a\%today%" md "e:\a\%today%"
- if not exist "e:\a\%databackup%" md "e:\a\%databackup%"
-
- copy e:\a\a.txt e:\a\%databackup%%backup%%today%.txt
- for /f "usebackq delims=" %%a in ("e:\a\a.txt")do echo e:\b\%%a.jpg>>e:\a\b.txt
- for /f "usebackq delims=" %%a in ("e:\a\b.txt") do if exist "%%~fa" copy "%%~fa" "e:\a\%today%"
- for /f "usebackq delims=" %%a in ("e:\a\b.txt") do IF NOT EXIST %%~nxa echo %%~nxa>>e:\a\temp.txt
- for /f "usebackq delims=. tokens=1" %%b in ("e:\a\temp.txt") do echo %%b>>e:\a\%fail%_%today%.txt
- 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 |