【问题标题】:Powershell find latest file and open in file explorerPowershell查找最新文件并在文件资源管理器中打开
【发布时间】:2020-10-27 14:55:05
【问题描述】:

这是基于另一个问题:https://stackoverflow.com/a/9675811/14529561

如何传递来自gci path | sort LastWriteTime | select -last 1 的结果并使用 explorer.exe 打开?

我试过了:

$wd = gci path | sort LastWriteTime | select -last 1;
explorer $wd

gci path | sort LastWriteTime | select -last 1 | Format-Table -hidetableheaders | explorer $_.

gci path | sort LastWriteTime | select -last 1 | Format-Table -hidetableheaders | ii $_.

不幸的是,以上所有内容都给我错误。

【问题讨论】:

    标签: powershell scripting


    【解决方案1】:

    您可以引用PSParentPath 属性。

    Get-ChildItem -Path path |
        Sort-Object -Property LastWriteTime |
            Select-Object -Last 1 | Foreach-Object {
                    Invoke-Item $_.psparentpath
            }
    

    【讨论】:

    • 我可以要求您不要使用 cmdlet 别名,即使 OP 在这种情况下这样做也是如此。编写完整的 cmdlet 名称将使其他可能有类似问题的人更容易理解您的代码。
    • 谢谢 Doug,很遗憾我没有选择使用 Invoke-Item $_.psparentpath
    • 使用来自 Hackoo(下)的部分代码有效。 Foreach-Object { Explorer /n,/select,$_.FullName }
    【解决方案2】:

    你可以这样做:


    $Mypath=$Env:Temp
    gci $Mypath | sort LastWriteTime | select -last 1 | % { Explorer /n,/select,$_.FullName }
    

    如果你想在多个文件夹中探索,你可以将它们放入一个数组中并这样做:


    cls
    $Mypath=@("$Env:UserProfile\desktop","$Env:Temp","$Env:AppData")
    
    ForEach ($P in $Mypath) {
        gci $P | sort LastWriteTime | select -last 1 | % { Explorer /n,/select,$_.FullName }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多