何必在意i 发表于 2021-8-30 20:52

DOS求助,有能力的大佬帮帮忙

本帖最后由 何必在意i 于 2021-8-30 23:04 编辑

就是全部文件夹下的所有子文件夹里面的图片全部批量命名


命名前缀是Pic_
_后面是数字


文件格式比较多有png,jpg,jpeg,gif,tiff,这些,希望大佬能做一个直接直接查多少的,而不是固定文件数量,不然我的文件一多就要去改代码,还有一个稍微小一点的要求就是,少于9个文件的(Pic_数字)前面不加0,大于10个的时候就前面加0,效果看截图
这个是大于9的效果


这个是小于9的效果



这个是网络上找的一个代码,如果大佬不想写可以直接改



@echo off&setlocal enabledelayedexpansion
for /r /d %%a in (*.*) do (
pushd %%a
set n=100
for /f "delims=" %%B in ('dir /a-d /b /on^|findstr /i "jpg$ JPG$ png$ PNG$ gif$ GIF$ tiff$ jpeg$"') do (
set /a n+=1
set m=!n:~1!
ren "%%B" "Pic_!m!%%~xB"
)
popd
)



基本所有的更名器都用过了,不能一键修改子文件夹里面的图片名字,你要硬要说搜索图片全选改名字的人麻烦不用留言了,我需要的是按顺序批量修改名字。

hfxiang 发表于 2021-8-31 15:08

本帖最后由 hfxiang 于 2021-8-31 15:12 编辑

何必在意i 发表于 2021-8-31 13:43
这个直接提示有重复名或者找不到文件,无法修改
已修改,并经1~16个文件的测试,没问题了

@echo off&setlocal enabledelayedexpansion
set "_strlen=set $=^!#1^!#&set ##=&set $=^!$^!fedcba9876543210&set/a##+=0x^!$:~16,1^!"
set "mm=0000000000000000"
for /r /d %%a in (*.*) do (
      pushd %%a
      set /a n=0
      for /f "delims=" %%B in ('dir /a-d /b /on^|findstr /i "jpg$ JPG$ png$ PNG$ gif$ GIF$ tiff$ jpeg$"') do (
                set /a n+=1
      )
      set #1=!n!
      (%_strlen%)
      set /a n=0
      for /f "delims=" %%B in ('dir /a-d /b /on^|findstr /i "jpg$ JPG$ png$ PNG$ gif$ GIF$ tiff$ jpeg$"') do (
                set /a n+=1
                set"m=%mm%!n!"
                call set "m=%%m:~-!##!%%"
                ren "%%B" "Pic_!m!%%~xB"
      )
      popd
)
endlocal

hshcompass 发表于 2021-8-30 22:22

支持你,我来不了。

执笔为画卷 发表于 2021-8-30 22:23

写过python类似的,bat你要写循环一遍确定数量吧?

何必在意i 发表于 2021-8-30 22:26

执笔为画卷 发表于 2021-8-30 22:23
写过python类似的,bat你要写循环一遍确定数量吧?

正常来说应该不用循环,可能要查有多少个文件,因为要做的就是大于9的前面就要加一个0,小于9的前面不加0

Sashka 发表于 2021-8-30 22:27

何必在意i 发表于 2021-8-30 22:30

Sashka 发表于 2021-8-30 22:27
只会写python的,楼主考虑一下python的吧,相对容易理解

可以用python写,只不过,我电脑没有,没办法编译

何必在意i 发表于 2021-8-30 22:32

Sashka 发表于 2021-8-30 22:27
只会写python的,楼主考虑一下python的吧,相对容易理解

你们写python会封装就更好了,我之前也是有python的就是重装电脑之后就没有安装了,我本来是想不用编程软件来弄这个的

netspirit 发表于 2021-8-30 22:32

用菲菲更名助手吧
windows下面的批处理比linux下面的差多了

何必在意i 发表于 2021-8-30 22:37

netspirit 发表于 2021-8-30 22:32
用菲菲更名助手吧
windows下面的批处理比linux下面的差多了

大哥,如果市面上的更改器有用就不会想搞代码了,目前我基本把所有的都用过了,不能一键批量修改子文件里面的文件名

templs 发表于 2021-8-31 08:34

这已经属于DOS命令的高级操作了。
页: [1] 2 3
查看完整版本: DOS求助,有能力的大佬帮帮忙