我试图循环一个特定的文件,看看是否有任何一行包含某个单词或文字,我想要替换整行。我不确定我是怎么做的。
现在这就是我所拥有的:
@echo off
setlocal enabledelayedexpansion
FOR /F "usebackq delims=" %%G IN ("C:\folder\myfile.properties") DO (
Set Line="transaction.sic.lettreEnvironnementBackend"
IF %%G == %Line% (
replace that line with new text
)
)
pause
endlocal
答案 0 :(得分:1)
@echo off
setlocal enabledelayedexpansion
Set "Line=transaction.sic.lettreEnvironnementBackend"
(
FOR /F "usebackq delims=" %%G IN ("C:\folder\myfile.properties") DO (
IF "%%G"=="%Line%" (
echo replacement line
) else (echo %%G)
)
)>replacement_filename
pause
endlocal
请注意,替换文件名不应是源文件名。测试完成后,move
替换文件为原始文件名(如果需要)。
另请注意,该指令将与line
的内容完全匹配 - 此行不允许任何其他字符。
语法SET "var=value"
(其中value可以为空)用于确保任何杂散尾随空格不包含在分配的值中。
答案 1 :(得分:0)
在PowerShell中也很容易。
openssl