在PowerShell中设置$ HOME


29

每次打开powershell时,如何将默认主目录更改为“ C:\ Users \ khornsby”?

我正在运行Windows7。以下是有关我的环境状态的信息。

Windows PowerShell
版权所有(C)2009 Microsoft Corporation。版权所有。

PS P:\> cd ~
PS P:\>echo $HOME
P:\
PS P:\> HOME="C:\Users\khornsby"
术语“ HOME = C:\ Users \ khornsby”未被识别为cmdlet的名称,
功能,脚本文件或可操作程序。检查名称的拼写,或者
如果包含路径,请确认路径正确,然后重试。
在线:1字符:25
+ HOME =“ C:\ Users \ khornsby” 

PS P:\> Set-Variable HOME "C:\Users\khornsby"
Set-Variable:由于变量HOME是只读或不能覆盖变量HOME
不变。
在线:1字符:13
+设置变量 

PS P:\> dir env:home*

名称值
---- -----
HOMEPATH \
HOMEDRIVE P:
家庭共享\\ fileserv \ khornsby $


PS P:\>

2
您如何设置帖子的格式?我喜欢您输入的内容突出显示的方式。
杰伊·巴祖兹

3
我用了<kbd>标签。
kzh 2010年

Answers:


27

该变量默认情况下是只读的,但是可以通过-Force切换到Remove-Variable来删除。为了使更改在各个会话之间持久存在,可以制作一个配置文件,该文件.bashrc与Powershell 一样类似于(对于Linux上的bash)。

在您C:\Users\YOUR_USERNAME_HERE\documents的用户帐户的Documents目录(通常为)中,创建一个WindowsPowerShell文件夹(命名完全相同)(如果尚不存在)。在该文件夹内,创建一个名为profile.ps1的文本文件(确保它不是profile.ps1.txt)。

在文件内,放置打开Powershell时要执行的任何内容。

例:

Write-Host "Hi John, welcome back!"
Remove-Variable -Force HOME
Set-Variable HOME "C:\Users\khornsby"

结果:

替代文字


1
您还可以通过快捷方式在启动时运行脚本,指向: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid

1
我试过了,它确实成功更改了$ HOME的值。但是“ cd〜”仍然顽固地切换到原始位置。
Weeble 2013年

2
@Weeble,请参阅我的答案以替代〜快捷方式。
ulty4life 2014年

9

要解决@Weeble对~快捷方式的关注:

$HOMEDRIVE = "C:\"
$HOMEPATH = "Users\" + $env:username

# Set and force overwrite of the $HOME variable
Set-Variable HOME "$HOMEDRIVE$HOMEPATH" -Force

# Set the "~" shortcut value for the FileSystem provider
(get-psprovider 'FileSystem').Home = $HOMEDRIVE + $HOMEPATH

看到这里〜和$ HOME之间的区别


1
值得cd $HOME在结尾处添加内容,因此外壳将从该位置开始,并且都将准备使用:)
Eliran Malka 2015年

5

甚至更容易...打开高级系统设置...

 C:\> systempropertiesadvanced

添加一个名为HOME的新系统变量以及您的配置文件的路径

在此处输入图片说明

重新启动资源管理器或注销并重新登录...

PS C:\> $Env:home 
--- 

3
这不符合问题的要求。这将设置环境变量$ env:HOME,而不是Powershell变量$ HOME。Powershell变量$ HOME似乎是在Powershell进程启动时从环境变量$ env:HOMEDRIVE和$ env:HOMEPATH派生的。是$ HOME决定“ cd〜”的行为。
Weeble 2013年

2
抱歉,最后一个陈述不太正确。当Powershell进程启动时,$ HOME和“ cd〜”的行为似乎都与HOMEDRIVE和HOMEPATH环境变量的值匹配。随后更改这些变量/环境变量中的任何一个似乎对“ cd〜”选择的目录没有影响。
Weeble 2013年

对我来说效果很好。。。我不知道你在做什么。
Eddie B

3

要在Windows中进行更改,请尝试以下操作:

  • 将PowerShell固定到任务栏。

  • 右键单击任务栏上的PowerShell图标。

  • 右键单击“ Windows PowerShell”,然后选择“属性”。

  • 在“属性”窗口中,转到“快捷方式”选项卡,然后将“开始于:”字段更改为所需的起始目录。(例如:)。C:\Users\username\Desktop

  • 点击“确定”。

  • 从任务栏启动PowerShell。

    任务栏

    属性窗口


选择“以管理员身份运行”时不起作用
devi

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.