2016-12-01 2 views
1

私は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" 
    } 

$CompnamesTextBoxがに割り当てられている変数の名前です。

改行文字が変数に含まれているため、毎回失敗したクエリが出力されます。私は$Comp$Computersの両方で-replaceを実行しようとしましたが、私がその権利を行っているかどうかはわかりません。

ご協力いただければ幸いです。

答えて

0

注このコマンドの出力:3行目は空であるため

("1`n2`n").Split("`r`n").Count 

出力3あります。あなたは空のエントリを無視することで対処できます(私はあなたが望むものだと思います)。

$CompNames.Text.Split("`r`n", [StringSplitOptions]::RemoveEmptyEntries) 
0

あなたはそれが単なる改行値であると確信していますか?あなたもカレーリターンを置き換えてみましたか?

$Computers = $CompNames.Text.Split("`n") 
Foreach ($Comp in $Computers) 
{ 

    $newComp = $Comp.Replace("`n", "").Replace("`r", "") 

    $log= "C:\Healthlog.txt" 
    Add-Content $log "$newComp" 

    #Check to see if machines are connected 
    Write-Host "$TestConnection = Test-Connection -ComputerName $newComp - Quiet" 
    $TestConnection = Test-Connection -ComputerName $newComp -Quiet 
    Write-Host $TestConnection 
    If ($TestConnection -eq $False) { 
    Add-Content $log "Connection to Device has failed" 
} 
0

ここにある両方のコメントに基づいて、コードが機能しています。それは空のエントリとキャリッジリターンの両方の問題でした。最終的なコードはこのようになりました。

$Computers = $CompNames.text.split("`n", [StringSplitOptions]::RemoveEmptyEntries) | % { $_.replace("`r", "") } 
+0

短いが、 '' $ CompNames.text.split( "\' R \ 'n" は、[StringSplitOptions] :: RemoveEmptyEntries)だけです。 '\' r'を含む私の答えを更新しました。 –

+0

魅力的な作品です。ありがとう! – dbennett

関連する問題