Como passar adiante um nome de arquivo como um argumento em uma chamada de arquivo .BAT

0

Eu tenho andado por aí com o DOSbox ultimamente, e uma tarefa particular que eu tenho feito é configurar uma série de arquivos em lote para chamar as coisas, para que eu possa economizar alguns cd s. Um arquivo .bat típico pode se parecer com o seguinte:

cd wolf3d
wolf3d -goobers
cd ..

Uma coisa que se tornou um pouco chata é a falta de um editor de texto embutido que eu possa usar, como o pico / nano. Dito isso, eu faço QBASIC instalado, então uma opção que eu estava considerando era a configuração para que eu pudesse fazer uma chamada como a seguinte:

nano filename.bat

e abriria o arquivo no QBASIC.

Eu li um pouco sobre como o script em lote funciona e parece que apenas adicionar um %1 ao script deve ser suficiente, como o seguinte:

cd qbasic
qbasic %1
cd ..

O que acaba acontecendo, no entanto, é se eu digitar, digamos nano nano.bat , para que eu possa editar o arquivo de lote, ele acaba abrindo um novo arquivo nano.bat em branco.

Eu tentei procurar o que estou perdendo aqui, mas isso parece ser um pouco misterioso demais para localizar facilmente. Alguém pode apontar o que está faltando aqui?

Obrigado!

    
por Kaji 04.04.2017 / 04:19

2 respostas

1

Para elaborar um pouco mais como no meu comentário:

  • Se a passagem de um caminho relativo como argumento para um lote que altera a pasta atual falhará se o passe não for relativo à nova pasta.
  • Como alternativa, passe um passe absoluto
  • ou não altere a pasta atual, se não for absolutamente necessário. O Qbasic é um arquivo .exe autônomo que pode estar em algum lugar acessível pelo caminho. Para usá-lo como editor, existe uma opção /Editor (apenas registrou no VDOS Plus - um derivado DosBOX)

Então mude seu nano.bat para

@Qbasic.exe /Editor %1

fornecido O Qbasic.exe pode ser acessado por meio de uma pasta no caminho.

    
por 04.04.2017 / 17:11
0

Tente porcentagens duplas, ou seja, %% 1. Os arquivos em lote do DOS não seguem exatamente as mesmas regras para os parâmetros que os seus equivalentes do shell.

    
por 04.04.2017 / 05:06