#batch-file #build #cmd #sublimetext3
#пакетный файл #сборка #cmd #sublimetext3
Вопрос:
У меня есть следующий скрипт под названием «build-bat.sublime-build»:
{
"cmd": "build.bat",
"working_dir": "$project_path",
"windows" : {
"shell": true
}
}
Сценарий находится в C:UsersMyNameAppDataRoamingSublime Текст 3Пакеты
Я могу выбрать сценарий в Tools / Build Systems / build-bat, а затем запустить его с помощью CTRL B или вручную выбрав его в Tools / Build
Это происходит ровно ничего. Я ничего не вижу, я не получаю никаких ошибок.
Он должен запустить файл с именем: build.bat в текущем каталоге, где размещен файл, над которым я работаю. Но этого не происходит.
Почему?
Комментарии:
1. Откройте консоль и посмотрите, есть ли какие-либо предупреждения или ошибки
Ответ №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.
Комментарии:
1. Рекомендуется для запуска в новом окне.
Ответ №3:
Вы можете переименовать свой build.bat
в make.bat
и выбрать систему создания сборки в ST. Просто нажмите 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}"]
}
Затем ваш пакетный файл можно запустить в командной строке CMDs. Я полагаю, что также можно передавать аргументы, но это может быть отправной точкой для вас.
Выше будет выполняться 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, но просто не взаимодействует.
Соответствующая справка:
START
https://ss64.com/nt/start.html
Ответ №5:
{
"shell_cmd": "${file}",
"working_dir": "$project_path",
"windows" : {
"shell": true
}
}
затем ctrl B работает с любым файлом bat после перезапуска sublime.