标题: [文本处理] 批处理如何修改文本中指定位置的内容? [打印本页]
作者: qiyuexx 时间: 2022-8-5 16:44 标题: 批处理如何修改文本中指定位置的内容?
D:\123.txt里记录了一些配置文件,想利用bat把server_ip后面的内容改成其他ip,要输入的内容用set /p来获取
注:有的是192.168.1.100 有的不是,也就是说server_ip后面的内容是未知的
{
"server_ip": "192.168.1.100",
"server_port": "7010",
"config_id":"2",
"local_run":"0"
}
麻烦大家给个答案,非常感谢!!
作者: hfxiang 时间: 2022-8-6 11:17
- @echo off&setlocal
- set /p server_ip=请指定ip地址(如:192.168.1.100 ):
- echo;{
- echo; "server_ip": "%server_ip%",
- echo; "server_port": "7010",
- echo; "config_id":"2",
- echo; "local_run":"0"
- echo;}
- endlocal
- pause
复制代码
作者: qiyuexx 时间: 2022-8-8 09:43
回复 2# hfxiang
非常感谢您的回复,但不能改变配置文件原有结构
作者: qiyuexx 时间: 2022-8-8 09:47
本帖最后由 qiyuexx 于 2022-8-8 09:48 编辑
回复 2# hfxiang
现已知配置文件里这一行是这样的"server_ip": "192.168.1.*",ip加*是因为ip不固定,但原配置文件已有,并不是一个%变量%,所以这样写不是很合适 还是非常感谢
作者: qixiaobin0715 时间: 2022-8-8 12:51
本帖最后由 qixiaobin0715 于 2022-8-8 12:55 编辑
- @echo off
- set /p _IP=Please enter the new IP Address:
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (123.txt) do (
- set "str=%%a"
- if not "!str:server_ip=!"=="!str!" (
- for /f "tokens=1* delims=:" %%i in ("%%a") do (
- set str=%%i: "%_IP%",
- )
- )
- echo,!str!
- )
- pause
复制代码
作者: hfxiang 时间: 2022-8-9 09:02
回复 3# qiyuexx
请明确列示清楚原文件及修改后的文件情况,否则无法正确理解需求
作者: qiyuexx 时间: 2022-8-10 09:52
回复 5# qixiaobin0715
感谢回复,好像不生效,麻烦您再给看一下,我把操作过程放云盘了,直接预览就好
链接: https://pan.baidu.com/s/1p5a8kePb6ss1d7FIO35K-w 提取码: e2rb 复制这段内容后打开百度网盘手机App,操作更方便哦
作者: qixiaobin0715 时间: 2022-8-10 10:03
回复 7# qiyuexx
请把你的1.txt和1.bat文件传到网盘,帮你看看!
作者: qiyuexx 时间: 2022-8-10 10:05
回复 8# qixiaobin0715
https://qiyuexx.lanzouv.com/idbAU09as6ih
麻烦您了
作者: qiyuexx 时间: 2022-8-10 10:07
回复 6# hfxiang
原文件1.txt内容如下
{
"server_ip": "未知ip",
"server_port": "7010",
"config_id":"2",
"local_run":"0"
}
希望可以通过批处理把未知的ip修改成我想要的ip
作者: qixiaobin0715 时间: 2022-8-10 10:13
用你的文件测试,我这里显示没有问题:- Please enter the new IP Address:201.201.1.168
- {
- "server_ip": "201.201.1.168",
- "server_port": "7010",
- "config_id":"2",
- "local_run":"0"
- }
- 请按任意键继续. . .
复制代码
是不是路径没写对?
作者: qixiaobin0715 时间: 2022-8-10 10:18
我是把修改内容显示出来,没有修改源文件。
作者: qiyuexx 时间: 2022-8-10 13:32
回复 11# qixiaobin0715
我这边cmd里确实显示已经改了 但是再打开1.txt里 还是没有改之前的样子 麻烦您看一下是不是这样
作者: qiyuexx 时间: 2022-8-10 13:33
本帖最后由 qiyuexx 于 2022-8-10 13:34 编辑
回复 13# qixiaobin0715
原来是这样啊 麻烦您再给改改 需要修改一下源文件 ,不用显示出来 最终目的就是快速修改源文件,因为实际环境中需要修改的1.txt,2.txt.....有好多个
作者: qiyuexx 时间: 2022-8-10 13:35
回复 12# xczxczxcz
多谢提供更多角度 实际环境里没有安装ps
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |