2012-06-05 3 views
3

Я очень новичок в PowerShell, и я уверен, что это простой вопрос, но я немного в тупике. Я пытаюсь открыть папку, сортировать по LastWriteTime и открыть папку в верхней части списка. Я хочу сохранить это в переменной, поэтому, когда я вызываю переменную, я могу установить свое местоположение для этой переменной. Проблема, которую я испытываю, заключается в том, что когда я вызываю свою переменную, ничего не происходит:Установите место для переменной в PowerShell

$ last = Get-Childitem C: \ Main | Сортировка LastWriteTime -Descending | Выбрать -Первый 1 | Invoke-Item

Как я могу получить сообщение об ошибке при попытке «Set-Location $latest»?

ответ

0

Вы уже вызываете элемент на то, что у вас есть, и действие по умолчанию было выполнено. переменная будет просто возвращать статус этого действия, а не возвращенный элемент. Если вы удалите последний вызов invoke-item, вы можете получить то, что хотите.

set-location нуждается в строке, а powershell возвращает объект. поэтому что-то вроде этого может быть тем, чего вы хотите.

установка местоположение «C: \ Main \» + $ lastest.name

+0

Я пробовал это, и я все еще получил ту же ошибку «Не могу найти путь» – MaineMan

+0

Извините, должно быть установлено «c: \ Main \» + $ lastest.name, и я отредактировал свой ответ. – johnshen64

2

Я хотел бы использовать Tee-Object установить переменную $latest в каталог, а также продолжать посылать объект каталога по конвейеру.

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

Дайте это попробовать:

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

Это работало для меня:

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

Если вы хотите использовать переменную в качестве значения для Set-Location, то вы должны использовать его например:

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

Уведомление t Я не использую знак $.

 Смежные вопросы

  • Нет связанных вопросов^_^