Enviando entrada para o programa de linha de comando a partir do arquivo de texto / lote

2

Eu sou um engenheiro mecânico com alguma participação em programação em VC ++. Nossa indústria usa um programa DOS & que requer 8 entradas do usuário. Nós temos que alimentar isto manuaaly toda vez. Podemos automatizar esse processo colocando a entrada em um arquivo de texto / arquivo em lote. Queremos automatizar esse processo de alimentação de dados para o programa de linha de comando.

Será um grande prazer receber algumas respostas com base nas suas experiências.

    
por Balram 06.06.2014 / 11:46

3 respostas

1

assumindo que o programa não tem um método que já é como pegar um parâmetro com o arquivo de entrada ou entrada, então soa como um problema de programação de enviar automaticamente chaves para um programa. VBscript tem SendKeys. VC ++ sem dúvida tem isso ou equivalente. caso contrário, é autohotkeys / autoit. Mas procure qualquer exemplo de sendkeys em vbscript e você verá um exemplo.

Teste manualmente o comando copy con para ver como funciona. copiar com c: \ blah \ a.a

você digita o texto do arquivo e pressiona Ctrl-Z para escrevê-lo.

Então, isso envolveu a inserção de coisas na linha de comando.

E tente este vbscript que faz isso automaticamente

para linha de comando. chame isso de qualquer coisa.vbs

dim a
a="copy con c:\blah\file.123"
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.SendKeys a
WshShell.SendKeys "dsdsfd{ENTER}sdfds{ENTER}sleep for 2000ms and will enter more{ENTER}"
Wscript.Sleep 2000
WshShell.SendKeys "ewrwrewrewwe{ENTER}"
WshShell.SendKeys "sending ctrl-z and enter {ENTER}"
Wscript.Sleep 2000
WshShell.SendKeys "^Z{ENTER}"
    
por 06.06.2014 / 12:16
0

Eu descobri que a maneira mais fácil é usar este código:

@echo off set / p input = echo% input% > example.txt

Espero que isso ajude!

    
por 26.09.2014 / 04:41
0

Acho que o problema foi mal interpretado.

Se a entrada para o programa for normalmente:

> program
Enter input1:   A
Enter input2:   B
Enter input3:   C
Enter input4:   D

Em seguida, para simplificar a operação, crie um arquivo de texto (program.inp) como:

A
B
C
D

E, em seguida, execute-o como:

> program <program.inp
    
por 17.03.2015 / 05:34