标题: [文本处理] 批处理命令findstr如何用正则匹配一个32位的字符串? [打印本页]
作者: tco99 时间: 2024-1-3 15:58 标题: 批处理命令findstr如何用正则匹配一个32位的字符串?
例如我有很多图片文件名像“Crush_Gray_Color_2c_3c623921c6de4d00bebf7c5a6fc63485.jpg”这样的文件,注意中间的下划线数量是不定的,我想将后面的32位字符串查找出来替换为其它字符串例如“x”,像这样:“Crush_Gray_Color_2c_x.jpg”,请指教!32位字符串也是变量。
过程代码大概这样:
set t=“Crush_Gray_Color_2c_3c623921c6de4d00bebf7c5a6fc63485.jpg”
......
set a=找到的32位字符串
set "t=%t:a=x%" (这句也请指教如何将变量a用到替换中?)
echo %t% (最后输出:Crush_Gray_Color_2c_x.jpg)
-----------------------------------------------------------
用findstr的话:echo t|findstr "???" 32位字符串正则怎么写?或者有什么其它方法能实现这个需求?
作者: qixiaobin0715 时间: 2024-1-3 16:08
你是想重命名对吧?那就用不着findstr:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *_*.jpg') do (
- set "str1=%%i"
- set "str2=!str1:_=\"
- for /f "delims=" %%j in ("!str2!") do ren "%%i" "!str1:%%~nj=x!"
- )
- pause
复制代码
作者: tco99 时间: 2024-1-3 17:12
回复 2# qixiaobin0715
原来 for /f %%~nj 还可以这么用!!果真是妙啊,感谢感谢 :victory:
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |