Board logo

标题: [文本处理] 批处理如何在文件名顺数或倒数某个字符前和(或)后插入指定字符? [打印本页]

作者: wzf1024    时间: 2016-2-20 21:17     标题: 批处理如何在文件名顺数或倒数某个字符前和(或)后插入指定字符?

很多文件,需要在文件名顺数或倒数第x个字符前和(或)后插入字符,如何实现。如:

阿斯蒂芬散发.txt
lkfgjalknfekl.txt
……
-------------
在倒数第3个字(不算扩展名)前面插入“(”,后面插入")",变成:

阿斯蒂(芬)散发.txt
lkfgjalknf(e)kl.txt
……
-------------
哪位大侠帮帮忙!?
作者: ivor    时间: 2016-2-20 21:38

回复 1# wzf1024


    什么条件的文件插入什么字符到什么位置
作者: 522235677    时间: 2016-2-20 21:48

  1. @echo off
  2.   set str=12345
  3.   set str2=%str:~0,-2%
  4.   set str3=%str2:~-1%
  5.   set str1=%str2:~0,-1%
  6.   set str4=%str:~-2%
  7.   echo %str1%(%str3%)%str4%
  8. pause
复制代码

作者: wzf1024    时间: 2016-2-21 18:47

回复 2# ivor


    很多txt,位置不定,第x个字的前面、后面插入指定字符。谢谢
作者: bailong360    时间: 2016-2-21 19:03

  1. ren2 -f "(.*)(.)(..\.txt)" "$1($2)$3"
复制代码

作者: flyinnet9    时间: 2016-2-22 16:15

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p n=输入倒数数字(0-9),然后回车:
  4. set /a m=n-1
  5. set 前插=(
  6. set 后插=)
  7. for /f "delims=" %%a in ('dir /b /a-d ^|findstr /v "bat$"') do (
  8. set str=%%~na
  9. set str1=!str:~0,-%n%!
  10. set str2=!str:~-%n%,1!
  11. set str3=!str:~-%m%!
  12. echo.old=!str!
  13. echo.new=!str1!!前插!!str2!!后插!!str3!
  14. pause
  15. )
复制代码

作者: WHY    时间: 2016-2-22 18:54

  1. PowerShell -c "dir *.txt|ren -NewName {$_.name -replace '(.*)(.)(..\.txt)$', '$1($2)$3'}"
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2