[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
另一种办法:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if "%~1" NEQ "ARG" (
  4.     set /p Num=Input:
  5.     for /f "tokens=1*" %%i in ('"%~f0" ARG ^| sort') do (
  6.         ren "%%j" "!Num!.tmp"
  7.         set /a Num+=1
  8.     )
  9.     ren *.tmp *.jpg
  10.     pause & exit
  11. ) else (
  12.     for %%i in (*.jpg) do (
  13.         set "Name=00000000000000000000%%~ni"
  14.         echo;!Name:~-20! %%i
  15.     )
  16. )
复制代码
1

评分人数

    • 逍遥生: 感谢,同样可行,而且效率更高!技术 + 1

TOP

本帖最后由 WHY 于 2023-2-24 22:32 编辑

回复 21# 逍遥生
  1. @echo off
  2. %1 %2
  3. color 0a
  4. :loop
  5. set "a="
  6. echo ============================================================
  7. echo                           批量重命名
  8. echo ============================================================
  9. echo        1.顺序重命名
  10. echo ============================================================
  11. echo        0.退出
  12. echo ============================================================
  13. set /p a=Input the Number 0 or 1:
  14. if '%a%'=='1' (
  15.     goto :pic1
  16. ) else if '%a%'=='0' (
  17.     exit/b
  18. ) else (
  19.     cls & echo 输入有误,请重新输入
  20.     goto :loop
  21. )
  22. :pic1
  23. setlocal enabledelayedexpansion
  24. set /p Num=Input the first Number:
  25. for /f "tokens=1*" %%i in ('"%~f0" goto :LABAL ^| sort') do (
  26.     ren "%%j" "!Num!.tmp"
  27.     set /a Num+=1
  28. )
  29. ren *.tmp *.jpg
  30. pause & exit/b
  31. :LABAL
  32. setlocal enabledelayedexpansion
  33. for %%i in (*.jpg) do (
  34.     set "Name=00000000000000000000%%~ni"
  35.     echo;!Name:~-20! %%i
  36. )
  37. goto :EOF
复制代码
1

评分人数

TOP

回复 23# 逍遥生


    我不知道你是如何修改导致失效的。
脚本运行到第26行的 for 循环时,会启动一个 CMD 子进程,子进程运行的也是这个批处理,只不过会传递两个参数:%1=goto,%2=ABAL
所以子进程从第2行开始就执行跳转,执行的是第33行的标签内容。

脚本这样设计有它的优点(不用临时文件),当然也有缺点:不易读、不易改;批处理不能在命令行带参数运行(因为形参已被 %1 %2占用)

把你的"代码合集"放到23行以上位置,第2行 %1 %2 不能省略,应该没有问题。

TOP

返回列表