2017-12-19 19 views
0

でそれぞれの行を書き、私は次のように見えるいくつかのDFS共有のテキストファイルがあります。テストUNCパスとその結果

\\\computer1\dfsshare1 
\\\computer2\dfsshare2 
\\\computer3\dfsshare3 
\\\computer4\dfsshare4 
\\\computer5\dfsshare5 

を私はForeach-Object機能を使用して、それらのそれぞれの上にTest-Pathにしたいです+ = +その結果(真または偽)を列挙し、行の末尾に@を追加します。これらのすべてが画面に表示されます。

私は次のようにテストした:

$DFSList = "G:\DFS-MONITOR\DFS-List.txt"  
Get-Content $DFSList | Foreach-Object {Write-host $_'=' Test-Path $_ '@'} 

しかしTest-Pathは(それなし)Write-Host後に動作させることができませんでした。

PowerShellで
\\computer1\[email protected] 
\\computer2\[email protected] 
\\computer3\[email protected] 
\\computer4\[email protected] 
\\computer5\[email protected] 
+0

なぜ 'Write-Host'ですか? –

+0

画面に書き込む。それはスクリーンに書き込む何か他のものかもしれません。 Teeオブジェクト、書き込み出力など... –

+0

'Test-Path'を括弧で囲みます – TheIncorrigible1

答えて

1

、あなたは/コマンド/スクリプトの結果/出力を渡したい場合は、次の

期待される結果は第4回DFS共有が利用できないと仮定すると、このようなものでなければなりませんコマンドレットを別のコマンド/スクリプト/コマンドレットに変換するには、結果をカッコで囲む必要があります。

Write-Host $_ '=' (Test-Path $_) '@' 
+0

ありがとうございます。不思議なことは、Test-Pathの出力が結果単語の前に常に空白を与えていることです。このスペースを避けるより良い方法はありますか?私はそれを "="マークの直前に持っていたかったのです。 –

+1

'-f'演算子を使って実行できます。あなたは[SS64のPowerShellのセクション](https://ss64.com)にブックマークすることを強くお勧めします。/ps /)を参照してください。 –