我需要使用PowerShell检查多台计算机上是否存在文件夹。
我已经开始使用我的剧本,但却让自己陷入困境。如何将serverlist.txt中的计算机名称输入测试路径cmdlet?
$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' foreach ($i in $a) {Test-Path "\\$a\c$\program files\folder"}
答案 0 :(得分:8)
这是我将如何做到的。将文件内容传递给Select-Object
,并为每个名称ComputerName和FileExist创建两个属性,其中后一个值是Test-Path
的结果。
Get-Content c:\Users\jason\Documents\Scripts\Serverlist.txt | `
Select-Object @{Name='ComputerName';Expression={$_}},@{Name='FolderExist';Expression={ Test-Path "\\$_\c$\program files\folder"}}
您应该期望输出类似于:
ComputerName FolderExist
------------ -----------
Computer1 False
Computer2 True
答案 1 :(得分:1)
$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt'
$b = $a | % { $_ + " - " + @(Test-Path $_)}
$ b现在包含服务器列表以及基于测试路径值的真或假
如果你需要$ a变量:
$a = Get-Content 'c:\Users\jason\Documents\Scripts\Serverlist.txt' | % { $_ + " - " + @(Test-Path $_)}