【问题标题】:Build System - Sublime Text 3构建系统 - Sublime Text 3
【发布时间】:2014-06-17 14:24:15
【问题描述】:

我有以下名为“build-bat.sublime-build”的脚本:

{
  "cmd": "build.bat",
  "working_dir": "$project_path",
  "windows" : {
      "shell": true
  }
}

脚本位于 C:\Users\MyName\AppData\Roaming\Sublime Text 3\Packages

我可以在 Tools/Build Systems/build-bat 中选择脚本,然后通过 CTRL+B 或在 Tools/Build 中手动选择它来运行它

它完全没有发生。我没有看到任何东西,我没有收到任何错误。

它应该在我正在处理的文件所在的当前目录中运行一个名为:build.bat 的文件。但这不会发生。

为什么?

【问题讨论】:

  • 打开控制台看看有没有警告或错误

标签: batch-file build cmd sublimetext3


【解决方案1】:

向 sublime text 3 添加新的构建系统后,您必须重新启动 sublime text 3。在此之后,上面的代码就可以工作了。

【讨论】:

    【解决方案2】:

    创建新的构建系统并粘贴:

    {
        "file_patterns": ["*.bat", "*.cmd"],
        "selector": "source.Batch",
        // opens CMD window and runs with full features. Uncomment what you like
        // "shell_cmd": "start \"CMD from Sublime - ${file_name}\" call \"${file}\"",
        "cmd": "cmd /c start \"CMD from Sublime - ${file_name}\" call \"${file}\"",
    
        // works on Sublime Text console and you can't input anything
        // "cmd": "cmd /c \"${file}\""
    }
    

    将其保存为 Batch.sublime-build 文件。在 ST3 和 ST4 版本中测试。

    【讨论】:

      【解决方案3】:

      您可以将您的build.bat 重命名为make.bat,然后在 ST 中选择 Make build system。只需按下Ctrl+B,ST 将尝试启动make 命令并执行make.bat。输出将显示在 ST 的控制台中。

      【讨论】:

        【解决方案4】:

        这对我有用:


        它使用 whitespaces 处理路径和文件,方法是使用 "arg" , 拆分参数,例如:

        [..., "/C", "START", "${file_path}", "${file_name}"]


        将其粘贴到您的 Batch.sublime-build 文件中。

        {
            "file_patterns": ["*.bat"],
            "selector": "source.Batch",
            // This runs the batch file in cmds' console
            "cmd": ["cmd", "/C", "START", "${file_path}", "${file_name}"]
        }
        

        然后您的批处理文件可以在 CMD 的 CLI 中运行。我想也可以传递参数,但这可能是你的起点。

        上面将运行 cmd.exe 并在其本机控制台中运行代码。这将接受您输入的 .bat 文件。


        这是一个可以保存为 BatchStConsole.sublime-build

        的构建
        {
            "file_patterns": ["*.bat"],
            "selector": "source.Batch",
            // This outputs to Sublime Texts' console
            "cmd": ["cmd", "/C", "${file}"]
        }
        

        上面将在 Sublime Texts 的控制台中运行代码。这不会接受您对 .bat 文件的输入。但对于调试仍然有用,因为它传递了任何参数,如原生 CLI,但没有交互。


        相关帮助:

        STARThttps://ss64.com/nt/start.html

        https://docs.sublimetext.io/guide/usage/build-systems.html

        https://www.sublimetext.com/docs/3/build_systems.html

        【讨论】:

          【解决方案5】:
          {
            "shell_cmd": "${file}",
            "working_dir": "$project_path",
            "windows" : {
                "shell": true
            }
          }
          

          然后 ctrl+ B 在重启 sublime 后对任何 bat 文件起作用。

          【讨论】:

            猜你喜欢
            • 2014-10-21
            • 2015-03-01
            • 2013-10-14
            • 2018-04-27
            • 2015-02-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多