在 PowerShell 中设置 $HOME

kzh*_*kzh 34 windows windows-7 powershell environment-variables

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

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

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

PS P:\> cd ~
PS P:\>echo $HOME
P:\
附注:\> HOME="C:\Users\khornsby"
术语 'HOME=C:\Users\khornsby' 不被识别为 cmdlet 的名称,
函数、脚本文件或可运行的程序。检查名称的拼写,或
如果包含路径,请验证路径是否正确,然后重试。
在行:1 字符:25
+ HOME="C:\用户\khornsby" 

附注:\> Set-Variable HOME "C:\Users\khornsby"
设置变量:无法覆盖变量 HOME,因为它是只读的或
持续的。
在行:1 字符:13
+ 设置变量 

附注:\> dir env:home*

名称值
---- -----
主路径\
家庭驱动器 P:
HOMESHARE \\fileserv\khornsby$


附注:\>

Joh*_*n T 31

默认情况下该变量是只读的,但可以通过-Force切换到 Remove-Variable 来删除。为了使您的更改在会话中保持不变,您可以制作一个配置文件,它很像.bashrc(对于 Linux 上的 bash),但 Powershell 除外。

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

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

例子:

Write-Host "Hi John, welcome back!"
Remove-Variable -Force HOME
Set-Variable HOME "C:\Users\khornsby"
Run Code Online (Sandbox Code Playgroud)

结果:

替代文字

  • @Weeble,请参阅我的答案以覆盖 ~ 快捷方式。 (2认同)

ult*_*ife 11

要解决 @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
Run Code Online (Sandbox Code Playgroud)

这里~和$HOME的区别


Edw*_*ett 5

更简单……打开高级系统设置……

 C:\> systempropertiesadvanced
Run Code Online (Sandbox Code Playgroud)

添加一个名为 HOME 的新系统变量,其中包含您的配置文件的路径

在此处输入图片说明

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

PS C:\> $Env:home 
--- 
Run Code Online (Sandbox Code Playgroud)

  • 这不符合问题的要求。这将设置环境变量 $env:HOME,而不是 Powershell 变量 $HOME。Powershell 变量 $HOME 似乎是从 Powershell 进程启动时的环境变量 $env:HOMEDRIVE 和 $env:HOMEPATH 派生的。$HOME 决定了“cd ~”的行为。 (4认同)
  • 抱歉,最后那句话不太正确。当 Powershell 进程启动时,$HOME 和“cd ~”的行为似乎都与 HOMEDRIVE 和 HOMEPATH 环境变量的值相匹配。随后更改这些变量/环境变量中的任何一个似乎对“cd ~”选择的目录没有影响。 (2认同)

小智 5

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

  • 将 PowerShell 固定到任务栏。

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

  • 右键单击“Windows PowerShell”并选择“属性”。

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

  • 单击“确定”。

  • 从任务栏启动 PowerShell。

    任务栏

    属性窗口