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

[文件操作] 如何将多个文件夹里的文件以所在文件夹名加递增序号的方式重命名并复制到指定文件夹里

本帖最后由 pcl_test 于 2016-7-26 13:21 编辑

我有大概200多个子文件夹在同一文件夹下,名字为数字1.2.3.4顺序排列,每个文件夹内有数目不等并且名字无序的图片

我想要把这些图片按照各自所在的文件夹命名。例如,把名称为1的文件夹内的3个图片,改成1_01,1_02,1_03,同理,把名称为2的文件夹内的4个图片,改成2_01,2_02,2_03,2_04

最后把所有命名后的文件提取到另一个文件夹里面并且名称不改动,还是1_01,1_02,2_01,2_02

由于需要改动的图片有几千个,还需要筛选,并且分类为10多组,工程量太大!我不想来年老婆带着新欢来给我烧纸啊!!!!希望各位大神能帮我一下,感激不尽
1

评分人数

    • pcl_test: 发帖前先使用论坛搜索PB -2

本帖最后由 binghejin 于 2016-7-29 15:12 编辑

所有的文件最终会全部改名后复制到名为OK的目录中,源文件没有删除!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cls
  4. dir /ad /b >list.txt
  5. for /f %%a in (list.txt) do (
  6. dir %%a\*.* /b >list_%%a.txt
  7. )
  8. md ok
  9. for /f %%b in (list.txt) do (
  10. for /f "delims=" %%i in (list_%%b.txt) do (
  11. set /a n+=1
  12.    copy "%%b\%%i" "ok\%%b_!n!"
  13. )
  14. set n=0
  15. )
  16. del list*.txt >nul
复制代码
1

评分人数

TOP

本帖最后由 bailong360 于 2016-7-29 09:33 编辑
  1. (let ((PATH "G:\\test\\"))
  2.   (dolist (dir (directory-files PATH nil "^\[0-9\]+$"))
  3.     (setq n 0)
  4.     (dolist (file (directory-files (concat PATH dir) nil "\[^.\]"))
  5.       (setq n (+ 1 n))
  6.       (let ((oldname (concat PATH dir "\\" file))
  7.             (newname (format "%s%s\\%s_%02d" PATH dir dir n)))
  8.         (rename-file oldname newname)
  9.         (copy-file   newname "G:\\newfolder")))))
复制代码
练手党撸一发
顺便吐槽一下directory-files文件目录都列出来是什么鬼?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::CODE BY bailong360 @bbs.bathome.net
  4. for /f "delims=" %%i in ('dir /ad /b "G:\test"') do (
  5.     set n=0
  6.     for /f "delims=" %%j in ('dir /a-d /b "%%i"') do (
  7.         set /a n+=1
  8.         ren "%%i" "%%i\%%~ni_!n!"
  9.         copy "%%i\%%~ni_!n!" "G:\newfolder\"
  10.     )
  11. )
复制代码

TOP

返回列表