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

[文本处理] [已解决]批处理文件夹内图片的名字

本帖最后由 528239120 于 2021-12-7 11:30 编辑

有差不多1000个文件夹 每个文件夹里面有4-50张图片  图片已经用1、2、3……数字命名好了,现在需我在图片名称前面加上文件名字 使其变成“文件夹名-1、文件夹名-2、文件夹名-3、……文件夹名-50”原来的命名顺序不能乱。
下面是我现在用的代码,因为我之前的图片都已经是按照数字命名好了,所以会出现排序问题“ 1 10 11 2……”不知道如何修改,求大神指点
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "delims=" %%a in ('dir/b/ad') do (
  4. set a=1
  5. for /f "delims=" %%i in ('dir/b/a-d "%%~na\*.*"') do (
  6. ren "%%~na\%%~nxi" "%%~na-!a!%%~xi"
  7. set /a a+=1
  8. )
  9. )
  10. echo 完毕,按任意键结束
  11. pause>nul [/code
复制代码

[已解决]批处理文件夹内图片的名字

感谢论坛的@went热心大佬帮忙解决了。
  1. #&@cls&cd /d "%~dp0" & @powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause&exit
  2. Get-ChildItem * | Where-Object { [System.IO.Directory]::Exists($_.FullName) } | foreach {
  3. $_.FullName
  4.     Get-ChildItem -Path $_.FullName -Filter '*.jpg' | Sort-Object { [int]$_.BaseName } | foreach {
  5.        Move-Item -Path $_.FullName -Destination ('{0}\{1}-{2:000}.jpg' -f $_.Directory.FullName,$_.Directory.BaseName,[int]$_.BaseName)
  6.     }
  7. }
复制代码

TOP

回复 1# 528239120


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. cd /d "%~dp0"
  3. for /d %%a in (*) do (
  4.     echo 正在处理文件夹:%%a
  5.     pushd "%%a"
  6.     for /f "delims=" %%b in ('dir /b /a-d *.jpg ^| find /c /v ""') do (
  7.         for /l %%c in (1,1,%%b) do (
  8.             if exist "%%c.jpg" (
  9.                 ren "%%c.jpg" "%%a-%%c.jpg"
  10.             )
  11.         )
  12.     )
  13.     popd
  14. )
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

好像dir出来的文件名顺序有一定的排列方式,但是打开文件夹又没变化;所以bat修改就可以了,修改后,文件夹里打开,顺序一样不变
Fit Strong

TOP

返回列表