我倾向于在一次运行多个批处理文件时打开很多 cmd 提示,所以我认为新的 Windows 终端会是一个整洁的方法,可以用标签来整理东西。
问题是,我不太明白如何将通过cmd实例运行批处理文件的默认行为改变为通过Windows Terminal实例内部的cmd实例运行批处理文件的所需行为。
我可以很容易地打开Windows终端,启动一个cmd实例,cd到正确的目录,然后运行批处理文件......但这很费劲。我希望能够运行一个批处理文件,并通过Windows终端内的cmd提示符来运行。
你可以在双击时有这样的行为,通过修改 HKCR\batfile\shell\open\command
默认值从:
"%1" %*
到。
"C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\wt.exe" -p "Command Prompt" "%1" %*
或通过使用 ftype
命令。
ftype batfile="C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\wt.exe" -p "Command Prompt" "%1" %*
你必须改变 <user>
与当前用户名目录,当然,这个 wt.exe
路径(C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\
)是如果你已经安装了 窗口终端 从 微软商店如果你没有,那么你就必须找到通向 wt.exe
并使用它来代替。Windows环境变量 %LOCALAPPDATA%
和 %USERPROFILE%
对我不起作用,所以我在这里使用完整路径。
你可以创建一个注册表条目,以便有一个选项来打开一个...。BAT
文件,并让它在Windows终端上运行 CMD
:
regedit
并导航到 HKEY_CLASSES_ROOT\batfile\shell
钥匙。创建一个名称为 wtopen
和默认值 Open with Windows Terminal
:
HKEY_CLASSES_ROOT\batfile\shell\wtopen\command
的默认值。"C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\wt.exe" -p "Command Prompt" "%1" %*
现在你会有一个新的条目 "用Windows终端打开" 当你右键点击 BAT
文件,当你点击它时,将打开一个新的 窗口终端 附带 指挥部 在面板上运行选定的批处理文件。
用Windows终端0.11.1121.0测试。
的默认名称为 指挥部 (cmd
)概况是 "指挥中心". 你必须使用 -p "<name>"
参数,如果你有其他的名字而不是默认的。
我为了这个问题找了一年多,今天终于找到了一个解决办法。微软论坛 一位顾问说。
.Bat扩展名是一种命令提示符的可执行格式,我检查过,它不支持在新的Windows终端中使用。
幸运的是这是错误的,我找到了一个方法来设置新的Windows终端为默认。
只要用这个代码创建一个.reg文件(用你的用户名替换 "Marco")并运行它。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"C:\\Users\\Marco\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe\" \"%1\""
你还需要编辑windows终端的设置.json,并将默认值:
"startingDirectory": "%USERPROFILE%"
改为
"startingDirectory": "."
如果你不这样做,它将无法工作,因为它试图在用户文件夹内运行它,而不是在当前!