2014-01-29 31 views
2

我有大约3或4个目录,我经常在我的机器上,并且会喜欢一种轻松直接访问这些目录而不是总是打字的目录。经常使用的目录

我能想到的最好的方法是设置环境变量。但是,“cd env:”不起作用。

无论如何有任何想法的最佳方式来做到这一点?

* 编辑1 * 我希望,一旦我的会议接近我不会失去一个方法(例如,关闭PS窗口)。

+0

我的答案适用于所有PowerShell会话,因为它是在PowerShell配置文件脚本中定义的。 –

回答

4

您可以在指向各个文件夹的PowerShell profile脚本中创建一个HashTable。然后,只需要用速记引用它们:

$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' 

然后,只需CD或SL的驱动器名称:

cd dir1: 
sl dir2: 
2

使用记事本$获取您的个人资料从powershell内部配置文件。

将上述函数之一放在那里,然后重新启动powershell。

+0

'功能专业{notepad.exe $配置文件}',只需键入'亲'并去。 –

1

一些读者可能更喜欢机器宽度超过每用户$profile。如果是这样,请在此位置编辑或创建一个文件。

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

IIRC,它在用户配置文件加载之前运行,无论您决定的优势还是劣势。