批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖
1、2、

[ 本帖最后由 tireless 于 2008-12-18 08:05 编辑 ]
tireless 发表于 2008-12-17 22:53


我试了下上边的所有脚本会导致文件名-左右删字符
如:AAA-BBB  会生成 BB-AA
然而我们需要的是生成BBB-AAA

以下提供可用脚本
  1. @echo off&setlocal EnableDelayedExpansion  
  2. for /f "tokens=1,2 delims=-." %%a in ('dir /b *.mp3') do (
  3. set var=%%a
  4. ::去除var变量左边第一个空格
  5. if "!var:~0,1!"==" " set var=!var:~1!
  6. if "!var:~0,1!"==" " set var=!var:~1!
  7. if "!var:~0,1!"==" " set var=!var:~1!
  8. if "!var:~0,1!"==" " set var=!var:~1!
  9. if "!var:~0,1!"==" " set var=!var:~1!
  10. if "!var:~0,1!"==" " set var=!var:~1!
  11. if "!var:~0,1!"==" " set var=!var:~1!
  12. if "!var:~0,1!"==" " set var=!var:~1!
  13. ::去除var变量右边第一个空格
  14. if "!var:~-1!"==" " set var=!var:~0,-1!
  15. if "!var:~-1!"==" " set var=!var:~0,-1!
  16. if "!var:~-1!"==" " set var=!var:~0,-1!
  17. if "!var:~-1!"==" " set var=!var:~0,-1!
  18. if "!var:~-1!"==" " set var=!var:~0,-1!
  19. if "!var:~-1!"==" " set var=!var:~0,-1!
  20. if "!var:~-1!"==" " set var=!var:~0,-1!
  21. if "!var:~-1!"==" " set var=!var:~0,-1!
  22. set jar=%%b
  23. ::去除jar变量左边第一个空格
  24. if "!jar:~0,1!"==" " set jar=!jar:~1!
  25. if "!jar:~0,1!"==" " set jar=!jar:~1!
  26. if "!jar:~0,1!"==" " set jar=!jar:~1!
  27. if "!jar:~0,1!"==" " set jar=!jar:~1!
  28. if "!jar:~0,1!"==" " set jar=!jar:~1!
  29. if "!jar:~0,1!"==" " set jar=!jar:~1!
  30. if "!jar:~0,1!"==" " set jar=!jar:~1!
  31. if "!jar:~0,1!"==" " set jar=!jar:~1!
  32. ::去除jar变量右边第一个空格
  33. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  34. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  35. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  36. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  37. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  38. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  39. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  40. if "!jar:~-1!"==" " set jar=!jar:~0,-1!
  41. ::重命名文件
  42. ren "%%a-%%b.mp3" "!jar!-!var!.mp3"
  43. )
复制代码

TOP

回复 16# smss

微软给我们的 WINDOWS 提供了更好的工具不用,还要这么绕脑。

Powershell :
  1. $a -replace '\s+','' -replace '(.*)-(.*)\.(.*)','$2 - $1.$3'
复制代码

TOP

本帖最后由 smss 于 2018-12-30 16:28 编辑
回复  smss

微软给我们的 WINDOWS 提供了更好的工具不用,还要这么绕脑。

Powershell :
xczxczxcz 发表于 2018-12-24 18:09


测试无效

TOP

回复 18# smss


    操作系统什么版本?PowerShell什么版本?把你的测试用例和测试结果发出来看看吧
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

回复  smss


    操作系统什么版本?PowerShell什么版本?把你的测试用例和测试结果发出来看看吧
Batcher 发表于 2018-12-30 17:09



TOP

回复 20# smss

首先这句脚本写的是改名的正则表达式,没有文件浏览。它当然不能产生任何作用。

看图片,你的系统好像是 win10。WIN7以上自带PWOERSHELL。无需复制PS程序。可以在PS窗口或用PS脚本直接运行。

如修改你的 图片所示的RAR文件。
  1. dir *.rar | ren -newname {$_.name -replace '\s+','' -replace '(.*)-(.*)\.(.*)','$2-$1.$3'} -verb
  2. cmd /c "echo;&pause"
复制代码
元旦太冷。
1

评分人数

    • ivor: powershell 比较方便技术 + 1

TOP

本帖最后由 smss 于 2019-1-2 21:59 编辑
回复  smss

首先这句脚本写的是改名的正则表达式,没有文件浏览。它当然不能产生任何作用。

看图片, ...
xczxczxcz 发表于 2019-1-1 20:09


无论在BAT中还是PowerShell中都无效

TOP

回复 22# smss

老大,你先确定好工作目录行不行?CD /D ?

TOP

本帖最后由 miqilaosu 于 2019-6-10 16:39 编辑
  1. echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2 delims=-" %%i in ('dir /a-d /b "*-*.*"') do (
  4. ren "%%i-%%~nxj" "!str2! - !str1!%%~xj"
  5. )
  6. pause
复制代码
新人交作业


……………………………………………………………………………………………………………………
  1. if "!str1:~0,-1!"==" " call  set /a "str1=!str1:~0,-1!"
复制代码
为什么我替换时数字没问题汉字就出错了

TOP

返回列表