Eu quero construir um arquivo usando o Sublime Text 2 e, em seguida, fazer uma cópia simples. Eu consegui fazer a primeira coisa usando um sistema de compilação, e acho que tem que ser possível fazer a cópia com o sistema de compilação também (porque eu posso fazer isso em um arquivo de lote).
O script em lote o que eu quero fazer é:
copy /b hang.bin+sectors.bin image.img
E o sistema de compilação que eu uso é:
{
"cmd": ["copy", "/b", "hang.bin+sectors.bin", "image.img"],
"working_dir": "$file_path"
}
A mensagem de erro que recebo:
[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]
Sim, codifiquei o arquivo hang.bin para ver se isso funcionaria, mas não. Normalmente eu usaria ${file_name}.bin
lá.
Eu suspeito que a sintaxe + dos dois arquivos a serem copiados (para um novo arquivo) é o problema, mas não tenho certeza. Alguém pode me ajudar?
fonte
{ "cmd": ["C:\\nasm\\nasm", "$file_name", "-f bin", "-o hang.bin"], "cmd": ["cmd /C \"copy /b hang.bin+sectors.bin image.img\""], "working_dir": "$file_path" }
mas isso me dá o mesmo erro de antes (erro 2: o sistema não consegue encontrar o arquivo especificado). Se eu apenas copiar a linha, recebo a mensagem "Erro ao tentar analisar o sistema de compilação: Valor esperado em & lt; caminho & gt; /build.sublime-build: 1: 1"cmd
). Se você quiser emitir mais de um comando, a maneira mais simples de obtê-lo é criar um arquivo em lotes e iniciá-lo a partir de um sistema de compilação. Você pode passar quantos argumentos desejar e depois emitir seus comandos daquele arquivo BAT. 2. Nos caminhos do sistema de compilação você deve usar barras, não barras invertidas - o Sublime Text cuidará delas e evitará problemas de escape. 3. Eu me lembro que uma vez eu tive que usar double escaping, ou seja, em vez de"
deveria ser\\\"
. Você pode tentar isso.{ "cmd": ["<path>/assemble.bat", "$file_name"], "working_dir": "$file_path" }
Meu arquivo assemble.bat:C:\\nasm\\nasm %1 -f bin -o boot.bin bfi -f=boot.img -l=bootflop ./floppy bootcopy
(Como você pode ver, eu não uso mais a cópia, mas uma ferramenta que eu mesmo escrevi chamada bootcopy)