找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25738|回复: 7

[文件操作] 求助鼠标选几个文件拖到bat上就可以重命名

[复制链接]
发表于 2020-1-17 17:44:06 | 显示全部楼层 |阅读模式
一个中文改数字的bat
应用对象是“bat所在文件夹下的所有文件”这个改成“当前选择的文件(任意文件夹)”就是用鼠标选几个文件拖到bat上就可以重命名的那种。
  1. @echo off


  2. for /f "delims=" %%i in ('dir /b') do call :Replacement "%%i"


  3. exit


  4. :Replacement


  5. set t1=%~1


  6. set t1=%t1:九十=90%


  7. set t1=%t1:八十=80%


  8. set t1=%t1:七十=70%


  9. set t1=%t1:六十=60%


  10. set t1=%t1:五十=50%


  11. set t1=%t1:四十=40%


  12. set t1=%t1:三十=30%


  13. set t1=%t1:二十=20%


  14. set t1=%t1:十一=11%


  15. set t1=%t1:十二=12%


  16. set t1=%t1:十三=13%


  17. set t1=%t1:十四=14%


  18. set t1=%t1:十五=15%


  19. set t1=%t1:十六=16%


  20. set t1=%t1:十七=17%


  21. set t1=%t1:十八=18%


  22. set t1=%t1:十九=19%


  23. set t1=%t1:十=10%


  24. set t1=%t1:九=9%


  25. set t1=%t1:八=8%


  26. set t1=%t1:七=7%


  27. set t1=%t1:六=6%


  28. set t1=%t1:五=5%


  29. set t1=%t1:四=4%


  30. set t1=%t1:三=3%


  31. set t1=%t1:二=2%


  32. set t1=%t1:一=1%


  33. set t1=%t1:零=0%


  34. set t1=%t1:09=9%


  35. set t1=%t1:08=8%


  36. set t1=%t1:07=7%


  37. set t1=%t1:06=6%


  38. set t1=%t1:05=5%


  39. set t1=%t1:04=4%


  40. set t1=%t1:03=3%


  41. set t1=%t1:02=2%


  42. set t1=%t1:01=1%


  43. echo %t1%


  44. ren %1 "%t1%"


  45. goto :eof
复制代码
发表于 2020-1-17 22:19:12 | 显示全部楼层
1,for行替换和追加
if exist "%~f1\" cd/d "%~f1" //引入for循环,文件夹执行职能执行一个文件夹
if not exist "%~f1\" cd/d "%~dp1" call:1 %* //引入多文件执行

2,exit行下方追加
:1
if /i "%~f1"=="" goto:eof
call:Replacement "%~f1"
shift
goto:1

3,其他保持不变
 楼主| 发表于 2020-1-19 11:02:48 | 显示全部楼层
回复 3# /zhqsystem/zhq
能麻烦高人直接贴一下修改版好吗,小白一个。
发表于 2020-1-19 13:13:46 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "fileName=%~nx1"
  4. set "str=九十:90 八十:80 七十:70 六十:60 五十:50 四十:40 三十:30 二十:20 十一:11 十二:12 十三:13 十四:14 十五:15 十六:16 十七:17 十八:18 十九:19 十:10 九:9 八:8 七:7 六:6 五:5 四:4 三:3 二:2 一:1 零:0 09:9 08:8 07:7 06:6 05:5 04:4 03:3 02:2 01:1"
  5. for %%i in (%str%) do (
  6.         for /f "tokens=1,2 delims=:" %%a in ("%%i") do (
  7.                 set "fileName=!fileName:%%a=%%b!"
  8.         )
  9. )
  10. echo 即将重命名 "%~nx1" --^> "%fileName%"
  11. echo 确认请按回车键...
  12. pause >nul
  13. rename "%~1" "!fileName!" && echo 重命名完成 || 重命名失败
  14. pause
复制代码
这是吧单个文件拖到bat上执行重命名
 楼主| 发表于 2020-1-20 16:38:11 | 显示全部楼层
本帖最后由 myacg 于 2020-1-20 16:43 编辑

回复 5# went

好像只能执行选择的第一个文件。。。
而且希望能够不跳出确认框框,直接执行就行。可以吗,谢谢。
 楼主| 发表于 2020-1-20 16:58:24 | 显示全部楼层
回复 2# xczxczxcz
谢谢,能改成不提示操作那种吗,直接运行就好了。
发表于 2020-1-20 21:27:27 | 显示全部楼层
回复 6# myacg
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :loop
  4. if not "%1"=="" (
  5.         call :renNow "%~1"
  6.         shift /1
  7.         goto :loop
  8. )
  9. echo 重命名完成
  10. pause&exit
  11. :renNow
  12. set "fileName=%~nx1"
  13. set "str=九十:90 八十:80 七十:70 六十:60 五十:50 四十:40 三十:30 二十:20 十一:11 十二:12 十三:13 十四:14 十五:15 十六:16 十七:17 十八:18 十九:19 十:10 九:9 八:8 七:7 六:6 五:5 四:4 三:3 二:2 一:1 零:0 09:9 08:8 07:7 06:6 05:5 04:4 03:3 02:2 01:1"
  14. for %%i in (%str%) do (
  15.         for /f "tokens=1,2 delims=:" %%a in ("%%i") do (
  16.                 set "fileName=!fileName:%%a=%%b!"
  17.         )
  18. )

  19. echo 重命名 "%~nx1" --^> "%fileName%"
  20. rename "%~1" "!fileName!" && echo 成功 || echo 失败
  21. echo -----------------------------
复制代码
 楼主| 发表于 2020-1-23 10:39:37 | 显示全部楼层
回复 8# went


    非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:28 , Processed in 0.018833 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表