【问题标题】:Set a location to a Variable in PowerShell在 PowerShell 中将位置设置为变量
【发布时间】:2012-06-09 20:54:42
【问题描述】:

我对 PowerShell 很陌生,我确信这是一个简单的问题,但我有点难过。我正在尝试打开一个文件夹,按 LastWriteTime 排序,然后打开列表顶部的文件夹。我想将其存储在一个变量中,因此当我调用该变量时,我可以将我的位置设置为该变量。我遇到的问题是,当我调用我的变量时,什么也没有发生:

$latest = 获取子项 C:\Main |排序 LastWriteTime -降序 | 选择 - 前 1 |调用项

我尝试“Set-Location $latest”时为什么会出错?

【问题讨论】:

    标签: powershell powershell-2.0 powershell-1.0


    【解决方案1】:

    这对我有用:

    $last = gci ./ | sort LastWriteTime | select -last 1
    Set-Location ($last.FullName)
    

    【讨论】:

      【解决方案2】:

      我会使用Tee-Object 将变量$latest 设置为目录,并继续将目录对象发送到管道中。

      Get-Childitem C:\Main | 
          Sort LastWriteTime -Descending | 
          Select-Object -First 1 | 
          Tee-Object -Variable latest |
          Invoke-Item
      

      【讨论】:

        【解决方案3】:

        如果你想使用一个变量作为 Set-Location 的值,那么你应该像这样使用它:

        $variableName = whatever
        Set-Location (Split-Path variableName)
        

        请注意,我没有使用 $ 符号。

        【讨论】:

          【解决方案4】:

          试试这个:

          $first = Get-Childitem C:\Main | Sort-Object LastWriteTime -Descending | Select-Object -First 1
          Set-Location (Split-Path $first.FullName)
          

          【讨论】:

            【解决方案5】:

            你已经调用了你得到的项目,并且执行了默认操作。该变量将只返回该操作的状态,而不是返回的项目。如果你删除最后一个管道调用项,你可能会得到你想要的。

            set-location 需要一个字符串,powershell 返回一个对象。所以像这样的东西可能就是你想要的。

            设置位置 "c:\Main\" + $lastest.name

            【讨论】:

            • 我试过了,但我仍然收到相同的“找不到路径”错误
            • 对不起,应该是 set-location "c:\Main\" + $lastest.name 我已经编辑了我的答案。
            猜你喜欢
            • 1970-01-01
            • 2016-03-28
            • 2020-09-29
            • 2016-01-11
            • 1970-01-01
            • 2013-07-19
            • 2020-02-17
            • 1970-01-01
            • 2017-01-02
            相关资源
            最近更新 更多