4

私は PowerShell を初めて使用します。これは簡単な質問だと思いますが、少し困惑しています。フォルダーを開こうとしていて、LastWriteTime で並べ替えて、リストの一番上にあるフォルダーを開こうとしています。それを変数に格納したいので、変数を呼び出すと、自分の場所をその変数に設定できます。私が抱えている問題は、変数を呼び出しても何も起こらないことです:

$latest = Get-Childitem C:\Main | 並べ替え LastWriteTime -降順 | -最初の 1 | を選択します。Invoke-Item

' ' を実行しようとするとエラーが発生するのはSet-Location $latestなぜですか?

4

5 に答える 5

3

これは私のために働いた:

$last = gci ./ | sort LastWriteTime | select -last 1
Set-Location ($last.FullName)
于 2013-09-11T16:15:43.597 に答える
2

Tee-Object変数$latestをディレクトリに設定し、ディレクトリオブジェクトをパイプラインに送信し続けるために使用します。

Get-Childitem C:\Main | 
    Sort LastWriteTime -Descending | 
    Select-Object -First 1 | 
    Tee-Object -Variable latest |
    Invoke-Item
于 2012-06-05T20:47:38.410 に答える
2

Set-Location の値として変数を使用する場合は、次のように使用する必要があります。

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

$記号を使用していないことに注意してください。

于 2014-12-23T17:06:00.703 に答える
1

これを試してください:

$first = Get-Childitem C:\Main | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Set-Location (Split-Path $first.FullName)
于 2012-06-06T07:04:48.957 に答える
0

取得したものに対してすでにアイテムを呼び出しており、デフォルトのアクションが実行されました。変数は、アイテムが返されるのではなく、そのアクションのステータスを返すだけです。最後のパイプ呼び出し項目を削除すると、必要なものが得られる場合があります。

set-location には文字列が必要で、powershell はオブジェクトを返します。このようなものがあなたが望むものかもしれません。

設定場所 "c:\Main\" + $lastest.name

于 2012-06-05T20:06:36.497 に答える