我现在只想bat脚本的正则匹配替换用法
时间: 2023-08-10 15:15:18 浏览: 207
在 Windows 平台上,你可以使用 `findstr` 命令来进行正则匹配,再搭配 `set` 命令来进行替换。以下是一个简单的示例代码,可以将文件中的 `1.0.988` 替换为 `1-0-0-988`:
```
@echo off
setlocal EnableDelayedExpansion
set "search=1\.0\.988"
set "replace=1-0-0-988"
set "file=test.txt"
rem 读取文件并替换文本
(for /f "usebackq delims=" %%i in ("%file%") do (
set "line=%%i"
set "line=!line:%search%=%replace%!"
echo !line!
)) > temp.txt
rem 将替换后的文本写入文件
move /y temp.txt "%file%"
```
这里使用了 `setlocal EnableDelayedExpansion` 命令启用了延迟扩展变量,同时使用 `set` 命令进行替换。
请替换代码中的 `%file%` 为你要替换的文件名,并根据需要修改搜索和替换的字符串。
如果你还有其他问题,请随时告诉我。
相关问题
bat脚本正则匹配替换
在 Windows 平台上,你可以使用 `findstr` 命令来进行正则匹配,再搭配 `set` 命令来进行替换。以下是一个示例代码,可以将文件中的 `1.0.988` 替换为 `1-0-0-988`:
```
@echo off
setlocal EnableDelayedExpansion
set "search=1\.0\.988"
set "replace=1-0-0-988"
set "file=test.txt"
rem 读取文件并替换文本
(for /f "usebackq delims=" %%i in ("%file%") do (
set "line=%%i"
echo !line! | findstr /r /c:"%search%" >nul && set "line=!line:%search%=%replace%!"
echo !line!
)) > temp.txt
rem 将替换后的文本写入文件
move /y temp.txt "%file%"
```
这里使用了 `setlocal EnableDelayedExpansion` 命令启用了延迟扩展变量,同时使用 `findstr` 命令进行正则匹配,并使用 `set` 命令进行替换。
请替换代码中的 `%file%` 为你要替换的文件名,并根据需要修改搜索和替换的字符串。
如果你还有其他问题,请随时告诉我。
使用bat脚本正则表达式把1.0.988替换为1-0-1-988
可以使用以下的 BAT 脚本正则表达式实现:
```bat
@echo off
set str=1.0.988
echo Before: %str%
setlocal enabledelayedexpansion
set str=!str:.=-!
set str=!str:~0,-4!-!str:~-3!
echo After: %str%
```
输出结果为:
```
Before: 1.0.988
After: 1-0-1-988
```
解释:
1. 首先将要替换的字符串 `1.0.988` 赋值给变量 `str`。
2. 使用 `setlocal enabledelayedexpansion` 开启延迟环境变量扩展。
3. 使用 `!str:.=-!` 将 `.` 替换为 `-`。
4. 使用 `!str:~0,-4!-!str:~-3!` 将倒数第四个字符前面的子串和倒数第三个字符组成的子串之间插入 `-`。
这样就可以实现将 `1.0.988` 替换为 `1-0-1-988` 的效果了。
阅读全文