PowerShellスクリプトで構成ファイルを使用することは可能ですか?
たとえば、構成ファイル:
#links
link1=http://www.google.com
link2=http://www.Apple.com
link3=http://www.Microsoft.com
そして、PS1スクリプトでこの情報を呼び出します。
start-process iexplore.exe $Link1
デニスとティムのご協力ありがとうございます!あなたの答えは私を良い軌道に乗せ、私は this を見つけました
SETTINGS.TXT
_#from http://tlingenf.spaces.live.com/blog/cns!B1B09F516B5BAEBF!213.entry
#
[General]
MySetting1=value
[Locations]
InputFile="C:\Users.txt"
OutputFile="C:\output.log"
[Other]
WaitForTime=20
VerboseLogging=True
_
POWERSHELLコマンド
_#from http://tlingenf.spaces.live.com/blog/cns!B1B09F516B5BAEBF!213.entry
#
Get-Content "C:\settings.txt" | foreach-object -begin {$h=@{}} -process { $k = [regex]::split($_,'='); if(($k[0].CompareTo("") -ne 0) -and ($k[0].StartsWith("[") -ne $True)) { $h.Add($k[0], $k[1]) } }
_
その後
コードスニペットを実行した後、変数($ h)にはHashTableの値が含まれます。
_Name Value
---- -----
MySetting1 value
VerboseLogging True
WaitForTime 20
OutputFile "C:\output.log"
InputFile "C:\Users.txt"
_
*テーブルからアイテムを取得するには、コマンド$h.Get_Item("MySetting1").*
を使用します
良いスレッドがあります here これはこのコードを示しています(リンクされたスレッドからの引用):
# from http://www.eggheadcafe.com/software/aspnet/30358576/powershell-and-ini-files.aspx
param ($file)
$ini = @{}
switch -regex -file $file
{
"^\[(.+)\]$" {
$section = $matches[1]
$ini[$section] = @{}
}
"(.+)=(.+)" {
$name,$value = $matches[1..2]
$ini[$section][$name] = $value
}
}
$ini
その後、次のことができます。
PS> $links = import-ini links.ini
PS> $links["search-engines"]["link1"]
http://www.google.com
PS> $links["vendors"]["link1"]
http://www.Apple.com
INIファイルが次のようになっていると仮定します。
[vendors]
link1=http://www.Apple.com
[search-engines]
link1=http://www.google.com
残念ながら、リンクのコードには正規表現が欠落しているため、それらを再現する必要がありますが、コメントであるセクションヘッダーと行のないファイルを処理するバージョンがあります。
はい、探しているコマンドレットはget-contentとselect-stringです。
$content=get-content C:\links.txt
start-process iexplore.exe $content[0]
より包括的なアプローチについては、 https://github.com/alekdavis/ConfigFile を検討してください。このモジュールは、JSON形式の構成ファイルとINIをサポートしています。変数を拡張し、いくつかの巧妙なトリックを行います。覚えておくべきことは、INIファイル内のキーと値のペアの名前は、スクリプトのパラメーターまたは変数の名前と一致する必要があるということです。