从文本列表中测试UNC路径并使用其结果写入每一行

时间:2017-12-19 16:02:18

标签: powershell for-loop foreach windows-scripting

我有一个包含多个DFS共享的文本文件,如下所示:

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

我想使用Test-Path函数对每个Foreach-Object进行=,然后列出每一行+ @ +其结果(true或false)并添加{{1}在该行的末尾,所有内容都显示在屏幕上。

我测试了以下内容:

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

但无法让Test-PathWrite-Host之后工作(只是没有它)。

假设第4个DFS共享不可用,预期结果应该是这样的:

\\computer1\dfsshare1=True@
\\computer2\dfsshare2=True@
\\computer3\dfsshare3=True@
\\computer4\dfsshare4=False@
\\computer5\dfsshare5=True@

1 个答案:

答案 0 :(得分:1)

在PowerShell中,如果要将命令/ script / cmdlet的 result / output 传递给另一个命令/ script / cmdlet,则需要将命令包装在括号中:< / p>

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