从快捷方式打开特定目录中的 Powershell

如何使 Windows 成为将 Powershell 打开到特定目录的快捷方式?

比如目标:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
-noexit -command {cd c:/path/to/open}

但是它只是以文本的形式输出命令,怎么做呢?

69635 次浏览

好的-你需要使用 &参数来指定它是一个 Powershell 命令 & 语法稍有不同:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
-noexit -command "& {cd c:\path\to\open}"

使用这个命令。

powershell.exe -noexit -command "cd c:\temp"

-NoExit: 不要在运行启动命令后退出。

尝试:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
-noexit -command "cd c:/path/to/open"

您还可以将“开始”快捷方式设置为您所需的位置。

将此代码复制到记事本中,并用 reg 扩展名保存。 双击生成的文件。如果您得到一条关于导入到注册表的消息,请单击 yes,然后确定。 导航到资源管理器中的任何文件夹并打开上下文菜单。这通常是通过单击鼠标右键来完成的。


Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\Directory\Background\shell\PShell]
"MUIVerb"="Open in Powershell Window"


[HKEY_CLASSES_ROOT\Directory\Background\shell\PShell\command]
@="c:\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

如果需要浏览器,右键单击选项,运行下面的脚本:

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:\Directory\shell\$KeyName"))
{
Try
{
New-Item -itemType String "HKCR:\Directory\shell\$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
New-Item -itemType String "HKCR:\Directory\shell\$KeyName\command" -value "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command Set-Location '%V'" -ErrorAction Stop
Write-Host "Successfully!"
}
Catch
{
Write-Error $_.Exception.Message
}
}
else
{
Write-Warning "The specified key name already exists. Type another name and try again."
}

这就是现在所显示的情况:

enter image description here


注意,您可以从 如何从文件资源管理器启动 PowerShell下载详细的脚本。

如果希望 powershell 以管理员身份启动并在特定目录中运行,即使是在不同的驱动器上,最好使用 Set-Location命令。按照以下步骤操作

  1. 创建一个 ShortCutLink,目标是 powershellcommand exe。
  2. 空白 Start in:(通常情况下,当前工作目录是空白时开始,但我们不在乎这一点。)
  3. 改变 Target为这个,你的 Powershell 目标和位置:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command "Set-Location D:\_DCode\Main"

  1. 单击 Advanced...并选择 Run as administrator
  2. 单击 OK

不要忘记从 Colors选项卡更改快捷方式颜色的方便技巧。这样,如果您有两个或多个打开 Powershell 窗口的链接,看到不同的颜色可以直观地让您知道哪个 shell 正在工作。

为 Powershell 定义一个快捷方式,并打开该快捷方式的属性,最后在“开始”中键入要在触发 Powershell 快捷方式时打开的文件夹目标

我只是想添加我的开发者 Powershell 链接... 为记录。

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell d998f19b; cd c:\dev\}"

这将启动 c:\dev\中的 Developer Powershell (VS2019)。

如果您正在使用 Powershell 7 (pwsh),只需像下面这样使用 -WorkingDirectory标志:

pwsh -WorkingDirectory "C:\path\to\your\directory"

如果您喜欢用您喜欢的命令行 shell 启动 Windows Terminal,可以使用:

wt.exe -d "c:\temp"