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

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

一个中文改数字的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
复制代码

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,其他保持不变
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 3# /zhqsystem/zhq
能麻烦高人直接贴一下修改版好吗,小白一个。

TOP

  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上执行重命名

TOP

本帖最后由 myacg 于 2020-1-20 16:43 编辑

回复 5# went

好像只能执行选择的第一个文件。。。
而且希望能够不跳出确认框框,直接执行就行。可以吗,谢谢。

TOP

回复 2# xczxczxcz
谢谢,能改成不提示操作那种吗,直接运行就好了。

TOP

回复 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 -----------------------------
复制代码

TOP

回复 8# went


    非常感谢!

TOP

返回列表