如何设置 PowerShell 的默认目录?

有办法更改 PowerShell 的默认位置吗?

如何设置 PowerShell 的默认工作目录?

142903 次浏览

您可以指定启动 PowerShell 时要打开的目录:

powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"

用在你的捷径上。

或者使用 侧写设置起始目录。

创建一个 PowerShell 配置文件,如下所示。

  1. 以管理员身份运行 PowerShell 并执行以下命令:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

    这将允许 PowerShell 运行已签名的本地脚本和从 Internet 下载的脚本。在 文件中阅读有关此命令的更多信息。

  2. Documents文件夹中,为经典 PowerShell 找到一个名为 WindowsPowerShell的文件夹,为较新的 PowerShell Core 找到一个名为 PowerShell的文件夹。如果它不存在,那没关系; 只要创建它。

  3. WindowsPowerShell文件夹(或 PowerShell Core 的 PowerShell)中创建一个名为 profile.ps1的新文件。
  4. 打开 profile.ps1并添加以下命令来设置默认工作目录:

    Set-Location C:\my\default\working\directory
    
  5. Open a new PowerShell window... the changes should have taken effect.

Set-Location放入配置文件将无条件地改变当前的工作目录,这可能会对通过“使用 PowerShell 运行”执行的脚本的工作目录产生不必要的影响。

另一种解决方案是将 .lnk文件的工作目录更改为通常在 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell中找到的 PowerShell。右键单击链接,将工作目录从 %HOMEDRIVE%%HOMEPATH%更改为所需的目录。

我在 WindowsServer2016中尝试了上述答案,但没有成功。

但是我发现这种方法(对于 Windows10来说应该是一样的)对我很有效。

  1. 启动 PowerShell 会话
  2. 在任务栏中,右键单击并固定一个链接
  3. 再次右键单击任务栏中的图标,然后右键单击 Windows PowerShell并选择 物业
  4. 开始:输入字段中输入您的首选目录,然后按 OK
  5. 从任务栏图标开始

成交!

在同样的 物业对话框中,你也可以通过按钮 Advanced来改变其他设置,比如字体、颜色、大小和 抄近路标签上的设置。您可以选择是否使用管理员权限运行该 PowerShell 会话。

你可以在 PowerShell 配置文件中编写一个简单的函数,使用 Set-Location在必要时快速更改工作目录工作目录,而不必像前面的答案那样无条件地更改。

选中 Jeremy Danyow 的回答以创建/修改 PowerShell 配置文件。

在 PowerShell 配置文件中添加一个函数:

function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}

只需更改指向的函数名和目录。如果路径包含空格,则必须在路径上使用引号。我尽量保留前缀 goto_,因为它有助于记住函数的名称。

您可以开始键入 goto_,然后按 TAB 来遍历所有添加的函数(记住在添加/修改函数之后启动一个新的 PowerShell 窗口)。

如果一个文件已经存在,只需使用命令行,它就会附加到该文件:

$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1

因此,人们似乎对“工作目录”和 PowerShell 的“位置”有些困惑。这里的大多数人正在做的,并说要做的是改变 PowerShell 的“位置”。“工作目录”实际上是不同的。以下是 一篇文章的解释。

对于那些不想读这篇文章的人: 打开 PowerShell,用别人说的做 Set-Location "C:\some\directory"。请注意,您的“工作目录”仍然位于 PowerShell 打开的位置。"~""%SYSTEMROOT%\system32"取决于您是否以管理员身份运行。检查工作目录,使用 ABc3。

注意: 在文章中,作者说通过使用以下命令来检查“工作目录”:

\[Environment\]::CurrentDirectory

我不确定这是否适用于较老的 PowerShell 版本,但是对于 PowerShell5(以及更高版本) ,您必须使用 [Environment]::CurrentDirectory

设置默认目录的简单方法如下:

  1. 右键单击 Windows PowerShell 图标,然后按“开始”
  2. 右键单击“开始”中的 Windows PowerShell 图标,然后再右键单击“ Windows PowerShell”并选择“属性”(不是 以管理员身份运行,也不是 Windows PowerShell)

    Enter image description here

    1. 抄近路选项卡-> ‘ Start In’字段中,切换到您希望 PowerShell 启动的位置。

    Enter image description here

在 PowerShell 中输入:

New-Item -path $profile -type file –force

它在 PowerShell 文件夹中创建一个. ps1文件:

Set-location C:\files

成交

请参考这个链接,它工作得很好。

更改 PowerShell 开始目录

使这成为 Profile.ps1中的第一行,PowerShell Core (pwsh)将在您当前工作的目录中打开:

set-location (get-location).path
Write-Output "Set-Location C:\" >> $profile

此解决方案将当前工作文件夹设置为脚本所在的位置。确保放置在脚本的开头,或者至少在尝试使用依赖于位置路径的命令之前。

Set-Location (Split-Path $MyInvocation.MyCommand.Path)
  1. C:\Users\yourusername\Documents\PowerShell下打开文件 Microsoft.PowerShell_profile

  2. 加入以下一行:

    set-location "C:\Whatever\path\you\want\to\set\as\worrkingdir\"
    
  3. 重新启动 PowerShell

如果你想在工作目录中从 windows 终端打开 powershell,这对我很有用:

  1. 选择默认值
  2. 添加. 作为起始目录

现在,如果我在一个目录中,点击:

  1. Alt 键 + d (它选择文件资源管理器中的路径)
  2. 键入 wt (它将选定的路径替换为 wt)
  3. 按回车键

它从工作目录的 windows 终端打开 powershell

enter image description here

最简单的方法是打开 Windows PowerShell,点击标题栏中的向下箭头进入设置(你也可以使用 Ctrl +)。使窗口更宽,这样你就可以看到所有的配置文件在左侧。点击 Windows PowerShell 配置文件并设置你的启动目录。单击底部的 Save 即可完成。

在 Windows11中,我可以通过在快捷属性中设置目录来解决这个问题。右键单击任务栏中的 Powershell,选择属性并更改 WorkingDirectory 标志(默认设置为 ~)

enter image description here