Skip to content
Oliver Lipkau edited this page Jul 21, 2015 · 11 revisions

Description

Usage

Parameters

FilePath

This parameters describes the path of the file to be read. Ideally this would be a path to a file with the INI extension. Type: String

This parameter must be provided. The value cannot be empty or null and must be pointing to an existing file. The path is tested with Test-Path $_

This parameter can be provided over the pipeline:
$ArrayOfIniContent = Get-ChildItem c:\sample\*.ini | Get-IniContent

 Name                           Value                                                  
 ----                           -----                                                  
 Key1                           Foo
 Key2                           Bar                                                  
 Comment1                       ;comment line 

CommentChar

This parameters specifies what characters characterize a comment line. Type: Array of chars

By default a semicolon is used ;. This can be extended or overwritten.

Reading a INI file which used # as comment character: Get-IniContent -FilePath "C:\sample\config.ini" -CommentChar @("#")

  Name                           Value                                                  
  ----                           -----                                                  
  key1                           Foo    
  Key2                           Bar                   
  Comment1                       #comment line    

IgnoreComments

This parameter keeps the function from returning comment lines. Type: Switch

Get-IniContent -FilePath "C:\sample\config.ini" -IgnoreComments

  Name                           Value                                                  
  ----                           -----                                                  
  Key1                           Foo
  Key2                           Bar           

Alias

By default the Module provides an alias Get-INI for the function.

Examples

This section uses these two INI files:

--FILE 1: ftp_profile.ini--

[settings]
;server address
server = ftp://contoso.com
;Username
user = admin
;Password
password = Password!
;FTP Mode
mode = passive

--FILE 2: transfer.ini--

[upload] files = index.html,styles.css,script.js
overwrite = true
source = c:\temp\website\

[download]
files = images/loading.gif,images/logo.png
destination = c:\temp\website

Example 1

Get all data

Get-ChildItem *.ini | Get-IniContent
 Name                           Value                                                  
 ----                           -----                                                  
 settings                       {Comment1, server, Comment2, user...}                  
 upload                         {files, overwrite, source}                             
 download                       {files, destination}  

Example 2

Get data to connect to FTP from Example 1

$ftpData = Get-ChildItem *.ini | Get-IniContent
($ftpData | ? {$_["settings"]})["settings"]
Name                           Value                                                  
----                           -----                                                  
Comment1                       ;server address                                        
server                         ftp://contoso.com                                      
Comment2                       ;Username                                              
user                           admin                                                  
Comment3                       ;Password                                              
password                       Password!                                              
Comment4                       ;FTP Mode                                              
mode                           passive

Example 3

Get data to connect to FTP

$ftpData = Get-IniContent -FilePath "ftp_profile.ini"
$ftpData["settings"]
Name                           Value                                                  
----                           -----                                                  
Comment1                       ;server address                                        
server                         ftp://contoso.com                                      
Comment2                       ;Username                                              
user                           admin                                                  
Comment3                       ;Password                                              
password                       Password!                                              
Comment4                       ;FTP Mode                                              
mode                           passive

Example 4

Get data to connect to FTP ignoring comments

$ftpData = Get-IniContent -FilePath "ftp_profile.ini" -IgnoreComments
$ftpData["settings"]
Name                           Value                                                    
----                           -----                                                  
server                         ftp://contoso.com                                      
user                           admin                                                  
password                       Password!                                              
mode                           passive

Example 5

Loop through all file to be uploaded

  $ftpTransfer = Get-IniContent -FilePath transfer.ini
  $ftpTransfer["upload"]["files"].Split(",") | % {Write-Host "Upload: $_"}
Upload: index.html  
Upload: styles.css  
Upload: script.js  
Clone this wiki locally