有办法更改 PowerShell 的默认位置吗?
如何设置 PowerShell 的默认工作目录?
您可以指定启动 PowerShell 时要打开的目录:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
用在你的捷径上。
或者使用 侧写设置起始目录。
创建一个 PowerShell 配置文件,如下所示。
以管理员身份运行 PowerShell 并执行以下命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
这将允许 PowerShell 运行已签名的本地脚本和从 Internet 下载的脚本。在 文件中阅读有关此命令的更多信息。
在 Documents文件夹中,为经典 PowerShell 找到一个名为 WindowsPowerShell的文件夹,为较新的 PowerShell Core 找到一个名为 PowerShell的文件夹。如果它不存在,那没关系; 只要创建它。
Documents
WindowsPowerShell
PowerShell
profile.ps1
打开 profile.ps1并添加以下命令来设置默认工作目录:
Set-Location C:\my\default\working\directory
Open a new PowerShell window... the changes should have taken effect.
将 Set-Location放入配置文件将无条件地改变当前的工作目录,这可能会对通过“使用 PowerShell 运行”执行的脚本的工作目录产生不必要的影响。
Set-Location
另一种解决方案是将 .lnk文件的工作目录更改为通常在 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell中找到的 PowerShell。右键单击链接,将工作目录从 %HOMEDRIVE%%HOMEPATH%更改为所需的目录。
.lnk
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
%HOMEDRIVE%%HOMEPATH%
我在 WindowsServer2016中尝试了上述答案,但没有成功。
但是我发现这种方法(对于 Windows10来说应该是一样的)对我很有效。
成交!
在同样的 物业对话框中,你也可以通过按钮 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_
您可以开始键入 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。
Set-Location "C:\some\directory"
"~"
"%SYSTEMROOT%\system32"
注意: 在文章中,作者说通过使用以下命令来检查“工作目录”:
\[Environment\]::CurrentDirectory
我不确定这是否适用于较老的 PowerShell 版本,但是对于 PowerShell5(以及更高版本) ,您必须使用 [Environment]::CurrentDirectory。
[Environment]::CurrentDirectory
设置默认目录的简单方法如下:
右键单击“开始”中的 Windows PowerShell 图标,然后再右键单击“ Windows PowerShell”并选择“属性”(不是 以管理员身份运行,也不是 Windows PowerShell)
在 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)
在 C:\Users\yourusername\Documents\PowerShell下打开文件 Microsoft.PowerShell_profile
C:\Users\yourusername\Documents\PowerShell
Microsoft.PowerShell_profile
加入以下一行:
set-location "C:\Whatever\path\you\want\to\set\as\worrkingdir\"
重新启动 PowerShell
如果你想在工作目录中从 windows 终端打开 powershell,这对我很有用:
现在,如果我在一个目录中,点击:
它从工作目录的 windows 终端打开 powershell
最简单的方法是打开 Windows PowerShell,点击标题栏中的向下箭头进入设置(你也可以使用 Ctrl +)。使窗口更宽,这样你就可以看到所有的配置文件在左侧。点击 Windows PowerShell 配置文件并设置你的启动目录。单击底部的 Save 即可完成。
在 Windows11中,我可以通过在快捷属性中设置目录来解决这个问题。右键单击任务栏中的 Powershell,选择属性并更改 WorkingDirectory 标志(默认设置为 ~)