使用 .txt 查看是否存在多个文件路径

Using .txt to see if multiple file paths exist

我正在尝试导入一个每行有一个文件夹路径的 .txt 文件。我试图查看记事本文件中是否存在多个文件夹路径。我现在不成功,因为我的脚本似乎认为整个 .txt 文件是文件路径,或者因为我没有让脚本正确读取 .txt 文件。我想知道这是否可能?

$Folder = 'C:\Users\User\Downloads\FolderExist.txt'
Get-Content -Path $Folder

if (Test-Path -Path $Folder) {
    "Path exists!"
} else {
    "Path doesn't exist." 
}
Export-Csv -Path "C:\Users\User\Documents\FolderExist.csv" -NoTypeInformation

这是我收到的错误

 Get-Content : Cannot find path 'C:\Users\User\Downloads\FolderExist.txt' because it does not exist.
    At line:2 char:1
    + Get-Content -Path $Folder
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (C:\Users\_Micha...FolderExist.txt:String) [Get-Content], ItemNotFoundException
        + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

您遇到的错误表明您尝试解析的文件不存在。确保你在这里确实有一个文件:

'C:\Users\User\Downloads\FolderExist.txt'

以及一些常规改进:首先,将您的文本文件内容保存到一个变量中:

$Folder = 'C:\Users\User\Downloads\FolderExist.txt'
$MyPaths = Get-Content -Path $Folder

然后,为了逐条测试每条路径,使用 foreach 循环,并再次捕获输出。在这里,我已将文件夹路径添加到输出中,以便您可以查看哪些文件夹存在和不存在:

$output = Foreach ($folderPath in $MyPaths) {
  if (Test-Path -Path $folderPath) {
    Write-Output "Path '$folderPath' exists!"
  } else {
    Write-Output "Path '$folderPath' doesn't exist." 
  }
}

最后,将结果写入文件

$output | Out-File -Path "C:\Users\User\Documents\FolderExist.csv"

文件看起来像:

Path 'c:\windows\' exists!
Path 'c:\users\' exists!
Path 'c:\bogus\' doesn't exist.