2014-01-29 3 views
2

У меня около 3 или 4 каталогов. Я часто хожу на свою машину и хотел бы, чтобы вы легко могли перейти прямо к этим каталогам, а не всегда печатать их.Часто используемые каталоги

Лучший способ, которым я мог бы это сделать, - установить переменные среды. Однако выполнение «cd env:» не работает.

В любом случае есть идеи по наилучшему способу сделать это?

* Edit 1 * Я надеюсь на подходе, что я не потерять, как только моя сессия близко (например, закрыв окно PS.).

+0

Мой ответ относится ко всем сеансам PowerShell, поскольку он определен в сценарии профиля PowerShell. –

ответ

4

Вы можете создать HashTable в своем сценарии PowerShell profile, который указывает на различные папки. Тогда просто ссылаться на них с помощью короткого руки:

$FL = @{ 
    Dir1 = 'c:\windows\system32' 
    Dir2 = 'c:\program files\Common Files' 
    Dir3 = 'C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys' 
} 

cd $FL.Dir1; 
cd $FL.Dir2; 
cd $FL.Dir3; 

В качестве альтернативы, вы можете развивать малые функции, и поместить их в свой профиль PowerShell сценарий.

function sys32 { 
    [CmdletBinding()] 
    param() 
    Set-Location -Path 'c:\windows\system32'; 
} 

function mkeys { 
    [CmdletBinding()] 
    param() 
    Set-Location -Path 'C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys'; 
} 

function cf { 
    [CmdletBinding()] 
    param() 
    Set-Location -Path 'C:\Program Files\Common Files'; 
} 

# Call the functions 
sys32; 
mkeys; 
cf; 
+0

Проблема, с которой я сталкиваюсь с этим подходом, - это когда вы закрываете PS, вы теряете HT. Я надеялся на то, что однажды смогу сделать, и не нужно беспокоиться о каждой сессии. –

+1

@Michael: Если вы положили это в свой скрипт профиля PowerShell, вам не нужно беспокоиться о повторном определении его каждый раз. Вот почему я связан с документацией профиля PowerShell. –

+1

Я пропустил это. Я проверю его и попробую. –

4

Создайте небольшую функцию в своем profile для каждого.

function gohome { 
    set-location c:\users\username 
} 
+0

Проблема, с которой я сталкиваюсь с этим подходом, - это когда вы закрываете PS, вы теряете HT. Я надеялся на то, что однажды смогу сделать, и не нужно беспокоиться о каждой сессии. –

+0

@Michael Как сказал alroc, поместите его в свой профиль. Тебе больше не придется беспокоиться об этом. – zdan

+0

Это тоже хорошо, но я решил использовать подход HT. Однако я дал вам голосование. –

5

Вы можете создать PS диск для каждого из них в вашем профиле:

New-PSDrive Dir1 -PSProvider FileSystem -Root 'c:\windows\system32' 
New-PSDrive Dir2 -PSProvider FileSystem -Root 'c:\program files\Common Files' 
New-PSDrive Dir3 -PSProvider FileSystem -Root 'C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys' 

Тогда только компакт-диск или SL на имя диска:

cd dir1: 
sl dir2: 
2

Получите ваш профиль с помощью блокнота $ профиль изнутри powershell.

Включите одну из вышеперечисленных функций и перезапустите моторную решетку.

+0

'Функция Pro {notepad.exe $ profile}', просто введите 'pro' и перейдите. –

1

Некоторые читатели могут предпочесть широкий профиль машины по сравнению с пользователем $profile. Если это так, отредактируйте или создайте файл в этом месте.

%windir%\system32\WindowsPowerShell\v1.0\profile.ps1 

IIRC, он запускается до загрузки профиля пользователя, является ли это преимуществом/недостатком, который вы решаете.

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