如何让批处理文件通过新的Windows终端运行?

问题描述 投票:7回答:1

我倾向于在一次运行多个批处理文件时打开很多 cmd 提示,所以我认为新的 Windows 终端会是一个整洁的方法,可以用标签来整理东西。

问题是,我不太明白如何将通过cmd实例运行批处理文件的默认行为改变为通过Windows Terminal实例内部的cmd实例运行批处理文件的所需行为。

我可以很容易地打开Windows终端,启动一个cmd实例,cd到正确的目录,然后运行批处理文件......但这很费劲。我希望能够运行一个批处理文件,并通过Windows终端内的cmd提示符来运行。

windows batch-file cmd terminal
1个回答
3
投票

你可以在双击时有这样的行为,通过修改 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:

  1. 开放式 regedit 并导航到 HKEY_CLASSES_ROOT\batfile\shell 钥匙。
  2. 创建一个名称为 wtopen 和默认值 Open with Windows Terminal:

    RegEdit batfile shell commands

  3. 创建一个子键 HKEY_CLASSES_ROOT\batfile\shell\wtopen\command 的默认值。
    "C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\wt.exe" -p "Command Prompt" "%1" %*
    

现在你会有一个新的条目 "用Windows终端打开" 当你右键点击 BAT 文件,当你点击它时,将打开一个新的 窗口终端 附带 指挥部 在面板上运行选定的批处理文件。

Windows explorer BAT file right click

用Windows终端0.11.1121.0测试。

的默认名称为 指挥部 (cmd)概况是 "指挥中心". 你必须使用 -p "<name>" 参数,如果你有其他的名字而不是默认的。


0
投票

我为了这个问题找了一年多,今天终于找到了一个解决办法。微软论坛 一位顾问说。

.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": "."

如果你不这样做,它将无法工作,因为它试图在用户文件夹内运行它,而不是在当前!

© www.soinside.com 2019 - 2024. All rights reserved.