first post here.
I’m trying to update (or add) strings to a plain text file, using strings from another text file.
Example:
File1.txt (Reference File)
<add key="1" value="False" />
<add key="2" value="C:\Temp" />
<add key="3" value="True" />
<add key="4" value="True" />
<add key="5" value="False" />
<add key="6" value="False" />
<add key="7" value="False" />
<add key="8" value="False" />
<add key="9" value="False" />
<add key="10" value="newkey" />
<add key="11" value="False" />
<add key="12" value="127.0.0.1" />
<add key="13" value="True" />
<add key="14" value="True" />
<add key="15" value="False" />
<add key="16" value="False" />
<add key="17" value="False" />
<add key="18" value="True" />
<add key="19" value="True" />
<add key="20" value="True" />
<add key="21" value="True" />
<add key="22" value="True" />
File2.txt (Target File)
<150 strings>
</150 strings>
<appSettings>
<add key="1" value="False" />
<add key="2" value="False" />
<add key="3" value="False" />
<add key="4" value="False" />
<add key="5" value="False" />
<add key="6" value="False" />
<add key="7" value="False" />
<add key="8" value="False" />
<add key="9" value="False" />
<add key="10" value="False" />
<add key="11" value="False" />
<add key="12" value="False" />
<add key="13" value="False" />
<add key="14" value="False" />
<add key="15" value="False" />
<add key="16" value="False" />
<add key="17" value="False" />
<add key="18" value="False" />
<add key="19" value="False" />
<add key="20" value="False" />
<add key="21" value="False" />
<add key="22" value="False" />
</appSettings>
<startup>
<supportedRuntime/>
</startup>
</configuration>
Requirements:
If file2.txt already contains one or all keys (i.e. 1 through 22), I want to replace the keys with file1.txt's keys.
If file2.txt is missing any keys that are present in file1.txt, they need to be added. As long as they appear within
<AppSettings>
, the order does not matter.If file2.txt contains keys that are not present in file1.txt, they should be left alone.
Anything outside of
<AppSettings>
should be left untouched.
After briefly testing Dbenham's last script, it looks like it accomplishes everything, but the lines above and below are moved around (my fault for not providing full examples).
Here is the current output from Dbenham's script:
<150 strings>
</150 strings>
<appSettings>
</appSettings>
<startup>
<supportedRuntime/>
</startup>
</configuration>
<add key="1" value="False" />
<add key="2" value="C:\Temp" />
<add key="3" value="True" />
<add key="4" value="True" />
<add key="5" value="False" />
<add key="6" value="False" />
<add key="7" value="False" />
<add key="8" value="False" />
<add key="9" value="False" />
<add key="10" value="newkey" />
<add key="11" value="False" />
<add key="12" value="127.0.0.1" />
<add key="13" value="True" />
<add key="14" value="True" />
<add key="15" value="False" />
<add key="16" value="False" />
<add key="17" value="False" />
<add key="18" value="True" />
<add key="19" value="True" />
<add key="20" value="True" />
<add key="21" value="True" />
<add key="22" value="True" />