首页 > 解决方案 > Foreach 使用 if/else 检查文件内容

问题描述

我正在尝试创建一个脚本,该脚本采用具有计算机名称的文件并检查是否在共享上为它们创建了一个文件夹。我在下面创建的脚本已损坏,并为文件中的每一行返回 true。foreach 的原因是要在输出中列出文件夹名称。有什么建议么?

$computer=Get-Content -path 'C:\comp.csv'

foreach ($comp in $computer) {
$path= Test-path '\\UNC_folder_path\'
if ($path -eq $True) {Write-host "$comp = Success"}
Else {Write-host "$comp = Failure"}
}

标签: powershell

解决方案


在您的循环中,您总是在测试相同的 '\UNC_folder_path\' 路径。

如果您想查看是否创建了该路径中的文件夹,Clev 命题似乎很好。假设您的 csv 文件仅包含计算机名称

CSV 文件:

cpu1
cpu2

你的脚本:

$computer=Get-Content -path 'C:\comp.csv'

foreach ($comp in $computer) {
$path= Test-path '\\UNC_folder_path\$comp' #or $path= Test-path '\\UNC_folder_path\$_'
if ($path -eq $True) {Write-host "$comp = Success"}
Else {Write-host "$comp = Failure"}
}

推荐阅读