我正在寻找更改文件中一行的Bat文件。 让我举个例子来说清楚。 我有一个文件test.properties
该文件如下所示:
hostname=<hostname>
port=0
rpcqueue=0
defaultlocale=en
defaulttimeout.normal=0
defaulttimeout.long=0
defaulttimeout.xlong=0
name=admin
passwd=406abbc8192eda42cc3261235959e23a8e223f6ab7f10d8cdf2e22fca
所以我想替换passwd后面的值,但我的问题是我不知道这个值我只知道我想要替换旧值的值。
还应该可以在命令行中输入文件名,属性值(passwd)和新值,以便我可以将此文件用于其他文件。 对不起,如果这个问题已经存在,但我找不到了。
我对蝙蝠的了解不是很好,我正在学习。
谢谢!
答案 0 :(得分:0)
在命令行中使用以下脚本如下: script.bat 例如&GT; script.bat test.txt passwd someval 脚本将解析您的文件,查找“varName =”,如果找到它,它将使用newVarValue替换值。 所有输出都被重定向到临时文件,然后临时文件替换初始文件。
@echo off
set "filepath=%~1"
set "pname=%~2"
set "value=%~3"
(
for /F "tokens=*" %%a in ('type "%filepath%"') do (
echo "%%a" | findstr /C:"%pname%=" > nul 2>nul
if "!errorlevel!"=="0" (
echo %pname%=%value%
) else (
echo %%a
)
)
)>"%filepath%.tmp"
move /Y "%filepath%.tmp" "%filepath%"
答案 1 :(得分:0)
像这样启动此批处理文件:Mybatch newpassword
这使用名为repl.bat
的帮助程序批处理文件 - 从https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat
将repl.bat
放在与批处理文件相同的文件夹中或放在路径上的文件夹中。
@echo off
type "test.properties" |repl "(passwd=).*" "$1%1" >"newfile.properties"