2016-07-28 20 views
0

PowerShell v2スクリプトでは、XMlファイルを読み取る正しい方法は何ですか?PowerShellからXMLファイルをチェックする正しい方法

XMLファイルを設定ソースとして使用しようとしているので、親PowerShellスクリプトを正常に停止できます。

ロジック:
PowerShellスクリプトはアレイをループします。
各ループの最後で、スクリプトはXMLファイルをチェックして、フラグが停止するように設定されているかどうかを確認します。

$pathForceStop = "c:\theconfig.xml" 

foreach($bean in $burrito) 
{ 
    write-host $bean 

    [xml]$xForceStop = Get-Content $pathForceStop 
    if ($xForceStop.powerstop -eq "stop") 
    { 
    #stop running 
    exit 
    } 
} 

これは、XMLファイルを読み取ってロックするのが正しい、または最も効率的な方法ですか?

答えて

0

IIRCでは、get-contentはファイルを1行ずつ読み込み、その間にファイルをロックします。

このブログ(http://powershell.com/cs/blogs/tobias/archive/2011/06/23/dealing-with-file-locks.aspx)には、もう少し速いファイルコンテンツを読み取る別の方法が記載されており、ファイルがロックされている時間を減らす必要があります。

$file = [System.io.File]::Open("$env:windir\windowsupdate.log", 'Open', 'Read', 'ReadWrite') 
$reader = New-Object System.IO.StreamReader($file) 
$text = $reader.ReadToEnd() 
$reader.Close() 
$file.Close() 
関連する問題