我有一个 NAS 文件夹列表,我必须定期查询这些文件夹是否存在。每个查询都是唯一的,但可能存在于 40 多个目录中的任何一个下。目录是固定的,我只寻找真或空(对所有目录)响应。我需要有一个用户输入框和一个输出到 txt 文件或带有经过验证的 UNC 路径的弹出对话框。PowerShell 具有有用的 Test-Path、Read-Host 和 Get-Content 功能,我认为我会使用这些功能,但对其他想法持开放态度。这是我的初步想法,任何帮助将不胜感激。
我的变量
$Folderquery = Read-Host 'Enter remote folder name'
$potentialpaths = Get-Content \\nas\listofpaths.txt
当我存储单个变量 $Folderquery 并针对每个可能的 UNC 路径运行它时,我的命令有效
Test-Path \\NAS1\Folder1\$Folderquery
我想我需要在 listofpaths.txt 文件中包含所有可能的 UNC 测试路径,因为每个 NAS 都有数百个主文件夹,我只想在其中的一小部分内进行扫描。
Foreach ($potentialpaths in (Get-Content \\NAS\listofpaths.txt))
{
If (-not (Test-Path $Folderquery)) {
Write-Output "The Folder $Folderquery does not exist"
}
else {
Write-Output "The Folder $Folderquery has been found on $listofpaths
}
那么,我该如何把它们放在一起呢?
修改后的代码:
$Folderquery = Read-Host 'Enter remote folder name'
$i = 0
foreach ($potentialpath in (Get-Content \\NAS\listofpaths.txt))
{
If (Test-Path "$potentialpath\$Folderquery")
{
$i++
}
}
If ($i -eq 1)
{
Write-Output "The Folder $Folderquery exists on $potentialpath\$Folderquery" | Out-File "\\NAS\pathlogfile.log" -Encoding ASCII -Append
}
Elseif ($i -eq 0)
{
Write-Output "The Folder $Folderquery does not exist" | Out-File "\\NAS\pathlogfile.log" -Encoding ASCII -Append
}
我应该在哪里休息?我如何对这些陈述进行分组以使其有效?