Sublime Text 2 构建系统

Sublime Text 2 构建系统

我想使用 Sublime Text 2 构建一个文件,然后进行简单的复制。我设法使用构建系统完成了第一件事,我认为使用构建系统进行复制也是可能的(因为我可以在批处理文件中进行复制)。

我想要做的批处理脚本是:

copy /b hang.bin+sectors.bin image.img

我使用的构建系统是:

{
"cmd": ["copy", "/b", "hang.bin+sectors.bin", "image.img"],
"working_dir": "$file_path"
}

我收到的错误信息:

[Error 2] The system can't find the specified file
[cmd:  [u'copy', u'/b', u'hang.bin+sectors.bin', u'image.img']]
[dir:  C:\Documents and Settings\xxx\Desktop\Project]
[path: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Ulead Systems\MPEG]
[Finished]

是的,我对 hang.bin 文件进行了硬编码,看看是否可行,但不行。通常我会${file_name}.bin在那里使用。

我怀疑要复制的两个文件(复制到一个新文件)的 + 语法是问题所在,但我不确定。有人能帮我吗?

答案1

where copy在命令行中运行,你会发现这copy不是一个程序,而是一个由 提供的内置命令cmd。Sublime Text 原生运行构建系统,不需要cmd,所以它无法识别copy

有一个解决方法:通过 执行命令cmd。从cmd的帮助(参见或者):

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]

/C      Carries out the command specified by string and then terminates

因此,例如,cmd /C notepad将执行记事本并立即退出,而不等待它退出。cmd /C copy也将起作用,因为它是通过执行的cmd。您的命令应如下所示:

cmd /C "copy /b hang.bin+sectors.bin image.img"

记住引号,否则/b,命令的其余部分将被视为 的参数cmd,而不是copy

答案2

这对我有用:


它适用于路径和文件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 并在其本机控制台中运行代码。这将接受您的输入。蝙蝠文件。


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

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

以上将在 Sublime Texts 的控制台中运行代码。这将不接受你的输入。蝙蝠文件。但对于调试仍然有用,因为它可以传递任何参数,如本机 CLI,但没有交互。


相关帮助:

START https://ss64.com/nt/start.html

http://docs.sublimetext.info/en/latest/reference/build_systems/configuration.html#platform-specific-options

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

相关内容