标题: [文本处理] 如何使用批处理替换文本? [打印本页]
作者: 韩辉 时间: 2021-12-1 17:18 标题: 如何使用批处理替换文本?
本帖最后由 韩辉 于 2021-12-2 13:56 编辑
有这样一个a.txt,里面的内容是:- {"codeVersion": 27367, "dataVersion": 26838, "createTime":1637764964162}
复制代码
我想把其中的"dataVersion": 26838 替换成 "dataVersion": 123456
其中"dataVersion": 26838,这个 26838是个不确定的值,因为这个a.txt是生成的
新人一枚,还请各位大佬答疑解惑
作者: qixiaobin0715 时间: 2021-12-1 18:35
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (a.txt) do (
- set "str=%%a"
- echo,!str:"dataVersion": 26838="dataVersion": 123456!
- ))>b.txt
- pause
复制代码
作者: Batcher 时间: 2021-12-1 23:24
回复 1# 韩辉 - @echo off
- powershell -c "Get-Content 1.txt | Foreach-Object {$_ -replace '"""dataVersion""": 26838', '"""dataVersion""": 123456'} | Set-Content 2.txt"
复制代码
作者: 韩辉 时间: 2021-12-2 13:58
回复 2# qixiaobin0715
首先,感谢大佬的回答
是这样的,这个 26838 是不确定的数,因为这个a.txt(a.js)是生成的,每次生成,变量后面的数都不一样
作者: flashercs 时间: 2021-12-2 16:40
- @echo off
- cd /d "%~dp0"
- set file=a.txt
- set newNumber=123456
- powershell -c "[system.io.file]::WriteAllText('%file%',([system.io.file]::ReadAllText('%file%') -replace '(\"dataVersion\"\s*:\s*)([\d.eE+-]+)','${1}%newNumber%'))"
- pause
复制代码
作者: 韩辉 时间: 2021-12-3 15:17
回复 5# flashercs
我运行了一下,不太好使啊
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |