Sistema de compilação de texto sublime 2

0

Eu quero construir um arquivo usando o Sublime Text 2 e 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 criaçã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, eu 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?

    
por Ruben 09.08.2013 / 15:10

1 resposta

1

Execute where copy em uma linha de comando e você verá que copy não é um programa, mas um comando interno fornecido por cmd . O Sublime Text executa sistemas de compilação nativamente, sem cmd , por isso não reconhece copy .

Existe uma solução: execute o comando através de cmd . Da ajuda de 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

Portanto, por exemplo, cmd /C notepad executará o Bloco de notas e sairá imediatamente, sem esperar que ele saia. cmd /C copy também funcionará, porque é executado através de cmd . Seu comando deve ficar assim:

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

Lembre-se das aspas, caso contrário, /b e o restante do comando serão tratados como argumentos para cmd , não copy .

    
por 09.08.2013 / 15:19