Batch file 要修改.properties文件的批处理脚本
我有一个属性文件(server.properties),它如下所示: ipaddress=10.x.x.xBatch file 要修改.properties文件的批处理脚本,batch-file,Batch File,我有一个属性文件(server.properties),它如下所示: ipaddress=10.x.x.x serverName=someName 还有很多其他的价值观 假设它位于C:\Server\Server.properties 是否有使用批处理脚本修改值的方法 如果我想将serverName从“someName”更改为“myName”,该怎么办? 我不能使用行号,因为行号随时都可能改变 这不是一个复制品 我试图找出如何替换财产的价值。不是用一个词替换另一个词 谢谢。@ECHO OFF S
serverName=someName 还有很多其他的价值观 假设它位于C:\Server\Server.properties
是否有使用批处理脚本修改值的方法 如果我想将serverName从“someName”更改为“myName”,该怎么办? 我不能使用行号,因为行号随时都可能改变 这不是一个复制品 我试图找出如何替换财产的价值。不是用一个词替换另一个词 谢谢。
@ECHO OFF
SETLOCAL
设置“sourcedir=C:\106x”
(
对于/f“usebackqdelims=“%%a IN”(“%sourcedir%\q25967146.txt”)执行以下操作(
对于/f“tokens=1*delims==”%%g IN(“%%a”)DO(
如果/i“%%g”==“servername”(ECHO(%%g=%~1
)其他(回声(%%a)
)
)
)>newfile.txt
::newfile.txt现在包含一个修改过的版本。
::此行将覆盖原始内容
ECHO(MOVE/y newfile.txt“%sourcedir%\q25967146.txt”
后藤:EOF
您需要更改sourcedir
的设置以适应您的环境
我使用了一个名为q25967146.txt
的文件,其中包含用于测试的数据。请更改名称以适合自己
生成newfile.txt
所需的移动命令仅用于测试。ECHO
在验证命令正确后,更改ECHO(MOVE
至MOVE
以实际移动文件。追加>nul
以抑制报告消息(例如1个文件已移动
)
上面显示的方法故意创建一个新文件,以便在不损坏原始文件的情况下查看新版本
请注意,此版本将在创建新版本时删除文件中的所有空行。如果需要,可以克服此问题
要运行此例程,请使用
thisbatchname“替换文本”
如果替换文本是没有空格或其他分隔符的单个字符串(看起来很可能),则可以省略引号
代码修复-在
for/f.%%a.
行中有一个delims==”
,这应该是delims=
(一个=
)双=
在for/f.%%g.
行中是正确的
要替换文件,请按照替换回声的指示激活移动(使用
MOVE
移动)-一旦您验证了该过程是否正常运行。正如您所看到的,一个小错误和损坏可能已经完成-通过两步操作保存。此代码删除了文件中的其他变量。servername会得到更新,但如果我在servername之外增加了一个“ip=1.1.1.1”,它将变为“ip”=“我还需要修改原件,而不是复印件。这不是副本