私はPowerShellを新しく導入しましたが、私たちの環境でいくつかのヘルスチェックを行うためにXAMLフォームを作成しました。最初の部分では、デバイスの接続状態を確認するif文を作成しました。デバイス名はTextBox
から取得され、接続されている場合はヘルスチェックが続行されます。しかし、アイテムがTextBox
から引っ張られているときには、その行に "n"が含まれているため、クエリは失敗します。ここでは、関連するコードがある...Powershellの変数(改行文字を含む)
Remove-Item C:\Healthlog.txt
#This is where the problem is happening
$Computers = $CompNames.Text.Split("`n")
Foreach ($Comp in $Computers){
$log= "C:\Healthlog.txt"
Add-Content $log "$Comp"
#Check to see if machines are connected
Write-Host "$TestConnection = Test-Connection -ComputerName $Comp - Quiet"
$TestConnection = Test-Connection -ComputerName $Comp -Quiet
Write-Host $TestConnection
If ($TestConnection -eq $False) {
Add-Content $log "Connection to Device has failed"
}
$Compnames
はTextBox
がに割り当てられている変数の名前です。
改行文字が変数に含まれているため、毎回失敗したクエリが出力されます。私は$Comp
と$Computers
の両方で-replace
を実行しようとしましたが、私がその権利を行っているかどうかはわかりません。
ご協力いただければ幸いです。
短いが、 '' $ CompNames.text.split( "\' R \ 'n" は、[StringSplitOptions] :: RemoveEmptyEntries)だけです。 '\' r'を含む私の答えを更新しました。 –
魅力的な作品です。ありがとう! – dbennett