研究了一下午,终于实现了在当前目录以管理员身份运行Windows Terminal
1.通过.reg直接向注册表添加表项
注释中写了每句的意思以及作用
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="Open Windows Terminal Here" ; 这是在右键菜单中显示的项目名称
"ShowBasedOnVelocityId"=dword:00639bc8 ; 这一项可以实现管理员打开cmd
; "Icon"={} ; 打开注释,将"{}"替换为程序或ico图标地址,这里是2位16进制,建议完成添加后再去注册表修改图标
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /c pushd \"%V\" & \"{}\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe\"" ; 最后写了每个参数的作用
; "{}"用在cmd中输入%USERPROFILE%输出的结果替换,注意双斜杠以防止转义
2.手动添加
1.找到表项HKEY_CLASSES_ROOT\Directory\Background\shell
,右键shell
项,新建项runas
(这个名字不能改,是管理员启动的关键),默认值是在右键菜单中显示的项目名称
2.在此项下新建一个名为
ShowBasedOnVelocityId
的DWORD(32位)值,数值为十六进制639bc8
,*3.新建可扩充字符串值
Icon
,数值为图标位置或者带有图标的应用程序位置,我直接用了wt.exe的路径,此项为可选4.新建名为
command
的项,默认值为cmd.exe /s /c pushd "%V" & "{}\AppData\Local\Microsoft\WindowsApps\wt.exe"
,"{}
"中是在cmd中输入%USERPROFILE%输出的结果5.设置wt新标签及其打开目录,
defaultProfile
值和list
中的窗口属性
"defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", //打开新标签的guid
{
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "命令提示符",
"commandline": "cmd.exe",
"hidden": false,
"useAcrylic": true,
"padding": "5, 0, -10, 10",
"acrylicOpacity": 0.75,
"startingDirectory": null //null即为堆栈顶层的路径地址即为%V
},
6.最终效果
cmd.exe
/s 表示修改 /c 或 /k 后对 String 的处理。
/c 表示在运行后关闭窗口
pushd %V pushd改变当前目录到指定目录,并保存当前的目录在堆栈顶端 在此处"%V"为当前工作目录,所以如果设置起始目录为null则打开当前目录
"路径" 在管理员模式的cmd打开程序