228029.jpg

zerozz

GF  2023-06-28 07:23
(没事做下整合资源)

想问问,有没有这样一个工具或者 github 项目

a文件夹下面,有一堆 数字子文件夹,数字子文件夹里面都是图片

我现在是,把数字1子文件夹里面的图片,用改名工具,把文件名从100按顺序开始改

然后把数字2子文件夹里面的图片,用改名工具,把文件名从200按顺序开始改

接着把,数字2子文件夹里面的图片,放到数字1子文件夹

数字3子文件夹 处理和 数字2子文件夹一样,只是文件名从300按顺序开始改,后面子文件夹,以次类推

最后数字1文件夹,把文件名从1按顺序开始改


有没有工具能帮我达成这样的效果?




  


  

1700647.jpg

键政之人

B1F  2023-06-28 07:40
(Just for fun.)
应该不会有这种工具,找个程序员大佬直接花半小时左右写一个给你倒是可以

228029.jpg

zerozz

B2F  2023-06-28 07:42
(没事做下整合资源)

回 1楼(键政之人) 的帖子

好吧,我一堆工具也是花钱找外包改的,如果能找到现成的更好

1260132.png

不是曾志伟

github 上没有看到完美契合这个需求的工具。可以考虑写个处理完每个子目录的命名,再丢第一个文件夹的脚本,写不动可以喊 GPT 帮你写

none.gif

El nino

用 chatGPT 写个脚本吧,应该挺短的。记得先测试,不要直接在自己的文件上实验

756205.png

人多必有白痴

不同子文件夹内的文件按统一顺序命名的需求倒是好说,但是加上整合不同子文件夹的文件到一个文件夹内……如果有了请踢我一脚

1617484.jpg

燃烧の前列腺

B6F  2023-06-28 08:17
(day 1 again)
写个python脚本就行了,估计就几个命令,友情提示,先把原文件都复制到另一个地方,以免脚本出bug了把数据打乱了

none.gif

SouthPlusUsr

B7F  2023-06-28 08:27
(Loading⏳)
你这个需求不是很简单吗?你把任务拆解下,让chatgpt给你逐步写好,估计用windows cmd命令写个bat就能实现了,不过要注意下文件名相同覆盖的问题,测试脚本前先备份数据

1426920.gif

帕克

B8F  2023-06-28 08:27
(黑皮辣妹赛高!https://img.chkaja.com/90113ee5cc3fdd5f.png)
renamer lite 有个seriallize 功能可以批量顺序命名
改名后:
搜索>kind:picture>把图剪切到根目录即可

或者反过来做

1798180.jpg

萨格尔王

Advanced Renamer就可以,改后缀名 改文件名都可以轻松实现的神级工具

770769.jpg

是不是犯贱

B10F  2023-06-28 10:01
(是不是犯贱)
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "root_folder=F:\a"
  4. set "destination_folder=F:\a\1"
  5. for /L %%i in (1,1,5) do (
  6.     set "sub_folder=%%i"
  7.     set "sub_folder_path=!root_folder!\!sub_folder!"
  8.     set "count=1"
  9.     
  10.     rem 重命名子文件夹中的图片
  11.     for %%f in ("!sub_folder_path!\*.jpg", "!sub_folder_path!\*.png") do (
  12.         set /a "ren_var = %%i * 100 +count"
  13.         ren "%%f" "!ren_var!%%~xf"
  14.         set /a count+=1
  15.     )
  16.     rem 移动图片到子文件夹1中
  17.     for %%f in ("!sub_folder_path!\*.jpg", "!sub_folder_path!\*.png") do (
  18.         copy "%%f" "!destination_folder!\"
  19.     )
  20. )
  21. rem 重命名子文件夹1中的图片
  22. set "count=1"
  23. for %%f in ("%destination_folder%\*.jpg", "%destination_folder%\*.png") do (
  24.     ren "%%f" "!count!%%~xf"
  25.     set /a count+=1
  26. )
  27. endlocal

770769.jpg

是不是犯贱

B11F  2023-06-28 10:02
(是不是犯贱)

回 10楼(是不是犯贱) 的帖子

新建一个txt,把这段代码保存,改后缀为bat。set "root_folder=F:\a"
set "destination_folder=F:\a\1",这两句改为实际的a文件夹和1文件夹位置

770769.jpg

是不是犯贱

B12F  2023-06-28 10:03
(是不是犯贱)

回 10楼(是不是犯贱) 的帖子

用chatgpt写的,测了半天没反应,结果发现是路径带了中文名。完全没学过批处理,不能有中文路径名吗?

770769.jpg

是不是犯贱

B13F  2023-06-28 10:05
(是不是犯贱)

回 10楼(是不是犯贱) 的帖子

另外根据文件夹数量,把for /L %%i in (1,1,5) do  这里的5改为相应的值。我测试的时候是建了5个文件夹

770769.jpg

是不是犯贱

B14F  2023-06-28 10:11
(是不是犯贱)

回 12楼(是不是犯贱) 的帖子

好吧,刚才搜索了一下,发现是编码格式问题,保存或者另存的时候,右下角有个编码格式,默认的应该是UTF-8,改为ANSI就行了,这样用中文路径名就没问题了
附件: rename-ansi.txt (1 K) 下载次数:1

7d8ab569


a9.gif

独孤博

我觉得你的这个需求应该换成:
1.把不同文件夹里所有图片名按顺序排好
2.把所有图片移到同一个文件夹里
然后我们就可以写出这样的代码:

复制代码
  1. @echo off
  2. set prefix=000
  3. set start=1
  4. setlocal enabledelayedexpansion
  5. for /r %%i in (*.jpg) do (
  6.     set name=%prefix%!start!.jpg
  7.     ren %%i !name:~-8!
  8.     set /a start+=1
  9. )
  10. for /r %%i in (*.jpg) do move %%i 1
  11. pause


在你的“a文件夹”里新建个文本文档,然后把上述代码复制进去,之后把这个文件后缀名改为.bat,然后双击运行

橘琴梨