如何让powershell使用else语句搜索其他文件夹

如何让powershell使用else语句搜索其他文件夹,powershell,if-statement,outlook,pst,Powershell,If Statement,Outlook,Pst,我正在尝试将一些PST文件自动导入Outlook,我目前正在使用以下脚本 Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null $outlook = new-object -comobject outlook.application $namespace = $outlook.GetNameSpace("MAPI") dir “$env:USERPROFILE\appdata\local\microsoft\out

我正在尝试将一些PST文件自动导入Outlook,我目前正在使用以下脚本

Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null 
$outlook = new-object -comobject outlook.application 
$namespace = $outlook.GetNameSpace("MAPI") 
dir “$env:USERPROFILE\appdata\local\microsoft\outlook\.pst” | % { 
$namespace.AddStore($_.FullName) }

我想添加一个else语句,这样如果在第一个位置找不到pst文件,那么它将签入“$env:USERPROFILE\Documents\Outlook Files”

对于单个文件,请使用
测试路径
验证文件是否位于您期望的位置,例如:

$pathA = "C:\path\to\my\file"
$pathB = "C:\path\to\another\file"

if(Test-Path $pathA){
  # do something with $pathA
}
else {
  # do something with $pathB
}
在本例中,您使用的是
dir
(Get ChildItem的别名),它返回文件夹中与指定路径/名称匹配的所有文件。您可能希望首先在PathA中查找文件,如果找不到,请在PathB中查找:

$pathA = "C:\path\to\my\folder\*.pst"
$pathB = "C:\path\to\another\folder\*.pst"

$files = Get-ChildItem $pathA

if($files){
  # do something with $pathA
}
else {
  # do something with $pathB
}

对任何好奇的人来说,这是我新的最终剧本

    $pathA = “$env:USERPROFILE\AppData\Local\Microsoft\*.pst”
    $pathB = “$env:USERPROFILE\Documents\Outlook Files\*.pst”

    $files = Get-ChildItem $pathA

    Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null 
    $outlook = new-object -comobject outlook.application 
    $namespace = $outlook.GetNameSpace("MAPI") 

    if($files){
    dir “$env:USERPROFILE\AppData\Local\Microsoft\*.pst” | % {                                 
    $namespace.AddStore($_.FullName) }
    }
    else {
    dir “$env:USERPROFILE\Documents\Outlook Files\*.pst” | % {                         
    $namespace.AddStore($_.FullName) }
    }

再次感谢查理,这帮了大忙

您的意思是“*.pst”而不仅仅是“.pst”在
dir
命令中吗?
也可能导致问题(与您的路径一致)。使用
,就像在第一行中一样,您可以从
if(){…}else{…}中移动前3行相同的代码
if
语句开始之前阻塞,因为不管怎样,您都将运行这3行代码。将代码重复次数保持在最低限度是一个很好的做法。是的。在我看来,这很好。您可能会找到许多不同的方法来编写代码,以满足程序员的要求,但我认为大多数人都同意减少d当逻辑以某种方式分支时,复制代码行。