在 PowerShell 中设置 $HOME

在 PowerShell 中设置 $HOME

每次打开 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:\Users\khornsby"

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

附言:P:\>dir env:home*

名称值
---- -----
家路 \
回家路 P:
主页共享 \\fileserv\khornsby$


附言:P:\>

答案1

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

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

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

例子:

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

结果:

替代文本

答案2

为了解决 @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 之间的区别

答案3

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

  • 将 PowerShell 固定到任务栏。

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

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

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

  • 单击“确定”。

  • 从任务栏启动 PowerShell。

    任务栏

    属性窗口

答案4

您可以使用help about_profiles查看有关此内容的更多详细信息。不要忘记签署您的脚本。

相关内容