Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使批处理文件通过新的Windows终端运行?_Windows_Batch File_Cmd_Terminal - Fatal编程技术网

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

如何使批处理文件通过新的Windows终端运行?,windows,batch-file,cmd,terminal,Windows,Batch File,Cmd,Terminal,由于一次运行多个批处理文件,我倾向于一次打开许多cmd提示,因此我认为新的Windows终端将是一种整洁的方式来整理标签 问题是,我不太明白如何将通过cmd实例运行批处理文件的默认行为更改为通过Windows终端实例中的cmd实例运行所需批处理文件 我能够轻松地打开Windows终端,启动cmd实例,将cd刻录到正确的目录,并运行批处理文件。。但这需要付出很大的努力。我只希望能够运行批处理文件,并通过Windows终端内部的cmd提示符使其工作。双击时,您可以通过更改以下默认值来实现此行为: &

由于一次运行多个批处理文件,我倾向于一次打开许多cmd提示,因此我认为新的Windows终端将是一种整洁的方式来整理标签

问题是,我不太明白如何将通过cmd实例运行批处理文件的默认行为更改为通过Windows终端实例中的cmd实例运行所需批处理文件


我能够轻松地打开Windows终端,启动cmd实例,将cd刻录到正确的目录,并运行批处理文件。。但这需要付出很大的努力。我只希望能够运行批处理文件,并通过Windows终端内部的cmd提示符使其工作。

双击时,您可以通过更改以下默认值来实现此行为:

"%1" %*
致:

您必须使用当前用户名目录更改
,当然,如果您从Microsoft应用商店安装了Windows终端,则必须找到
wt.exe
路径(
C:\Users\\AppData\Local\Microsoft\WindowsApps\
),然后使用该路径。Windows环境变量
%LOCALAPPDATA%
%USERPROFILE%
对我不起作用,所以我在这里使用完整路径

您可以创建一个注册表项,以使用Windows终端操作
BAT
文件并使其与
CMD
一起运行:

  • 打开
    regedit
    并导航到
    HKEY\U CLASSES\U ROOT\batfile\shell
  • 创建一个名为
    wtopen
    且默认值为
    openwithwindows终端的密钥
  • 使用默认值创建子键
    HKEY\U CLASSES\U ROOT\batfile\shell\wtopen\command
    "C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\wt.exe" -p "Command Prompt" "%1" %*
    
    “C:\Users\\AppData\Local\Microsoft\WindowsApps\wt.exe”-p”命令提示符“%1”*
    
  • 现在,当您右键单击
    BAT
    文件时,您将有一个新条目“使用Windows终端打开”,当您单击它时,它将打开一个新的Windows终端,其中一个命令提示面板将运行选定的批处理文件:

    使用Windows终端0.11.1121.0进行测试


    命令提示符(
    cmd
    )配置文件的默认名称为“命令提示符”。如果您的名称不是默认名称,则必须使用
    -p”“
    参数对其进行更改。

    我已经寻找该名称至少一年了,今天终于找到了解决方案。。 在报告中,一位顾问说:

    .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 terminal settings.json并更改默认值:

    "startingDirectory": "%USERPROFILE%"
    


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

    /batchfile对我有用。从penguinOS中取出一页,该页将由


    Windows将来将支持更改默认终端。

    其他答案也可以,但如果Windows终端已经打开,并且允许脚本没有绝对路径,我还希望批处理文件作为新选项卡打开:

    打开注册表编辑器并导航到此项:

    Computer\HKEY_CLASSES_ROOT\batfile\shell\open\command
    
    然后将
    (默认)
    值修改为以下值:

    wt.exe -w 0 new-tab -d . "%1" %*
    
    其中,
    -w 0
    参数指定在文件的当前工作目录下的
    新选项卡的第一个或现有窗口中打开:
    -d.


    提示:如果将批处理文件设置为在后台静默运行,但不希望弹出,只需将其从
    .bat
    重命名为
    .cmd

    最好的方法是,如果我们需要在path中添加系统环境,我们需要将REG_类型从REG_SZ更改为REG_EXPAND_SZ,否则我们将只使用绝对路径

    路径
    %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe-w 0 nt-d。“%1”%*
    下面是
    HKEY\U CLASSES\U ROOT\batfile\shell\open\命令下的

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\batfile\shell\open\command]
    @=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,\
      00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,\
      74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,\
      00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,77,00,20,00,30,00,\
      20,00,6e,00,74,00,20,00,2d,00,64,00,20,00,2e,00,20,00,22,00,25,00,31,00,22,\
      00,20,00,25,00,2a,00,00,00
    

    这项功能可能还不可用,我敦促您寻找当前的开发人员,询问是否可用,如果不可用,您可以为他们记录一个增强问题,以确保新软件的可用性得到进一步提高!引用自
    与(windows终端)团队沟通的最简单方式是通过GitHub问题。
    不确定我是否正确,我的英语知识非常有限,但此链接有帮助吗@elzooilogico-该链接只是两个人在讨论终端,而没有讨论如何使用它。我还没有对其进行更改以测试它,但我可以想象您要么更改与.bat扩展名关联的可执行文件,要么使用
    start
    。更一般的是:
    %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe
    未尝试,但应该可以使用
    ftype batfile=“%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe”%1%*
    @Stephan我尝试了
    %LOCALAPPDATA%
    %USERPROFILE%\AppData\…
    更改命令提示符下的默认值,但这些都不起作用,但
    ftype
    是一种更快的设置方式,是的。这是可行的,但问题是,是否有一种方法可以在windows终端中默认情况下仅通过双击而不是右键单击打开bat文件option@NekoMusume是的,我在乞求答案的时候就把它遮住了;更改
    HKCR\batfile\shell\open\command
    对您无效?不幸的是,对我无效,只有右键单击才有效,虽然我必须将起始目录部分放在settings.json的命令提示符profile部分下,它才能更改其目录。@Mathew Vandenberg此注释应该是答案的一部分
    Computer\HKEY_CLASSES_ROOT\batfile\shell\open\command
    
    wt.exe -w 0 new-tab -d . "%1" %*
    
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\batfile\shell\open\command]
    @=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,\
      00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,\
      74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,\
      00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,77,00,20,00,30,00,\
      20,00,6e,00,74,00,20,00,2d,00,64,00,20,00,2e,00,20,00,22,00,25,00,31,00,22,\
      00,20,00,25,00,2a,00,00,00