任何人都可以帮助我使用批处理替换属性文件中的字段值。
我的application.properties
文件中包含此字段:accessKey=AKIAJ2Q
我希望将其替换为accessKey=XXXXX
我尝试使用sed命令作为推荐here,但它没有用。 Windows 10无法识别send命令。
我还尝试了以下代码:
SET key="XXXXX"
FOR /F %i IN (application.properties) DO SET accessKey=%key%
pause
任何帮助都将不胜感激。
由于
答案 0 :(得分:1)
肯定有一种使用纯批处理替换txt / properties文件中的字符串的方法。
以上面的示例替换application.properties中的accessKey 文件。
@ECHO OFF
SETLOCAL
SET "sourcedir=C:\<Add directory path of application.properties>"
(
FOR /f "usebackqdelims=" %%a IN ("%sourcedir%\application.properties") DO (
FOR /f "tokens=1*delims==" %%g IN ("%%a") DO (
IF /i "%%g"=="accessKey" (
ECHO(%%g=xxxx
) ELSE (
ECHO(%%a)
)
)
)>application_new.properties
:: This new file now contains a modified version.
rem ECHO(MOVE /y application_new.properties "%sourcedir%\application.properties"
GOTO :EOF
答案 1 :(得分:0)
没有办法&#34;替换&#34;纯批处理文本文件中的内容。您可以使用第三方工具,例如Find&#39; n&#39;替换甚至一些PowerShell命令。但你可以做的是&#34;复制&#34;替换您要查找的令牌时,将文本文件转换为临时文件。之后,您可以删除原始文件并将其替换为临时文件。这是代码:
@echo off
setlocal enabledelayedexpansion
set sourcefile=something.txt
set tempfile=tempfile.txt
set oldtoken=AKIAJ2Q
set newtoken=XXXXX
type nul>%tempfile%
for /f "tokens=*" %%l in (%sourcefile%) do (
set line=%%l
set line=!line:%oldtoken%=%newtoken%!
echo !line!>>tempfile.txt
)
del %sourcefile%
move %tempfile% %sourcefile%