Comments (5)
please provide the content of the original file
from psini.
File is attached (renamed to .txt and internal data replaced with dummys).
These are the commands I'm using which basically "destroy" the file:
$iniPath = "C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk"
$ini = Get-IniContent $iniPath
$ini["Test-VPN"]["ExcludedProtocols"]="8"
$ini["Test-VPN"]["PreferredHwFlow"]="1"
$ini["Test-VPN"]["PreferredProtocol"]="1"
$ini["Test-VPN"]["PreferredCompression"]="1"
$ini["Test-VPN"]["PreferredSpeaker"]="1"
$ini["Test-VPN"]["IpDnsAddress"]="10.117.1.11"
$ini["Test-VPN"]["IpDns2Address"]="10.117.1.12"
$ini["Test-VPN"]["IpNameAssign"]="2"
$ini["Test-VPN"]["IpNBTFlags"]="0"
$ini["Test-VPN"]["DisableClassBasedDefaultRoute"]="1"
$ini["Test-VPN"]["AutoTiggerCapable"]="1"
$ini | Out-IniFile -FilePath $iniPath -Encoding UTF8 -Force
from psini.
@lipkau The first appearance of the value is overwritten with the arraylist in Get-IniContent
. You should rather safe the previous value before creating an arraylist. Fix:
if ($ini[$section][$name] -is [string]) {
$first = $ini[$section][$name]
$ini[$section][$name] = [System.Collections.ArrayList]::new()
$ini[$section][$name].Add($first) | Out-Null
$ini[$section][$name].Add($value) | Out-Null
}
cheers,
Thorsten
from psini.
Just saw that #58 was in here and trying to tackle the Duplicate Key issue.
I just submitted #63 before I saw that.
Either way, though - in my testing it seemed like I was getting a second key of my "duplicate" and then continuing forward from there with the Arraylist
and when written out, it resulted in this annoying double-expansion of the ArrayList
from psini.
However, like I mentioned here #60 (comment)
I think either of mine or @devio 's solutions would also possibly raise an issue of moving entries up/down within a file
so
key = value # 'comment line' # 'comment line' key = value # 'comment line'would end up like this I believe
# 'comment line' # 'comment line' key = value key = value # 'comment line'
or possibly like this for devio's solution - I think - I didn't check his personally
key = value
key = value
# 'comment line'
# 'comment line'
# 'comment line'
To fully allow for duplicate keys, potentially spread through the entire file & assuming their positioning relative to other entries within a section (or lack of a section) is important - I'm not sure how to get around the bunching problem
from psini.
Related Issues (20)
- White space being removed HOT 1
- Aligning behaviour of PSIni and Python's ConfigParser HOT 8
- Quotes stripped and trimming HOT 20
- If values are double in one section the Write operation add mistakes
- Installation of v3.1.2 fails HOT 2
- 30 seconds for processing 5MB ini file
- Files edited with PsIni can't be read with GetPrivateProfileString HOT 1
- File with [ ] in path doesn't seem to work as expected. HOT 1
- Can't read Vmware Workstation .vmx HOT 1
- Please allow duplicate keys HOT 2
- Latest tag v3.1.2 is pointing to version 3.1.0
- Submission: ConvertFrom-Ini and ConvertTo-Ini
- Writing new section and values? HOT 1
- Cant handle keys without value (e.g. winpeshl.ini) HOT 1
- -IgnoreComments do not work HOT 1
- Out-IniFile: UTF-8 without BOM HOT 5
- Can't save as ANSI or save characte — (dash em) HOT 1
- Wrong order in Out-IniFile HOT 1
- Importing the module HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from psini.