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

[文件操作] 复制不同盘符的相同文件到同一个文件夹内.如何重命名

在不同的盘内,有相同的名字都为"照片.JPG".
要把这些都复制到同一个文件夹,并命名为不同的名字.
比如C盘"照片.JPG"命名为"C照片.JPG".如果C盘有第二个相同的就命名为"C照片1.JPG",以此类推.
用COPY做不到.还有其他法子?

  1. @echo off
  2. for /f "delims=驱动器:\" %%a in ('fsutil fsinfo drives^|more') do (
  3.       for /f "delims=" %%i in ('dir/b/s/a-d %%a:\照片.JPG') do (
  4.             set/a n+=1
  5.            call, copy "%%i" "newfolder\%%a照片%%n%%.jpg"
  6.       )
  7. )
  8. pause
复制代码
心绪平和,眼藏静谧。

TOP

  用 if exist 来检测吧,做成一个子过程,在for内部调用:如果检测到有同名文件,则计数器加1后再检测,如果还是重名,计数器再加1,如此重复,直到没有同名文件为止,再用 copy "源文件路径" "目的路径\源文件名+计数器" 的格式,具体代码可以参考我做的照片整理器的 re_name 部分。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表