Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    inviare più comandi al prompt di msdos

    ciao...
    devo fare in java questa cosa che vi scrivo come se fossi nel mio prompt di msdos

    c:\mioprogramma\avvio.bat [invio]

    inserisco un comando del programma [invio]

    ora il comando resta in attesa che io digiti per due volte yes, quindi

    y [invio]

    y [invio]

    come faccio a fare cio con Runtime.getRuntime.exec(...) ???
    oppure c'è un altro metodo?!?!

    help!!

    vi posto il codice che ho scritto:
    codice:
    Process p;
    try {
    	String []comando = {"c:\\mioprogramma\\avvio.bat","mio comando","y","y"};		p = Runtime.getRuntime().exec(comando);	
    			
    	} catch (IOException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    	}
    qui non ottengo l'output desiderato, cioè la scrittura di un file... credo, forse, rimanga in attesa dei 2 y... aiuto
    ciao e grazie
    stex1984

  2. #2
    mi han suggerito che devo prendermi byte per byte ciò che mi restituisce ogni comando e poi digitare il comando successivo ed inviarglielo.. mah come si fa?!?!?!? VVoVe:

    chi mi aiuta?!?!?
    stex1984

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Prova ad utilizzare l'OutputStream dell'oggetto Process che viene generato dall'esecuzione del metodo exec() della classe Runtime.

    Tramite questo oggetto dovresti essere in grado di indirizzare i comandi.

    Non è necessario farlo byte per byte: costruisci un PrintStream con l'OutputStream del processo.

    codice:
    Runtime r = Runtime.getRuntime();
    Process tuoProg = r.exec("c:\\mioprogramma\\avvio.bat");
    PrintStream ps = new PrintStream( tuoProg.getOutputStream() );
    
    ps.println("comando del programma");
    ps.println("y");
    ps.println("y");
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    già provato...
    guarda... il programma in questione è openssl e ti scrivo cosa debbo fare...

    devo usare openssl per firmare una richiesta di certificato...
    codice:
    private String inputPath = "C:\\OpenSSL\\usr\\ssl\\misc\\request.pem";
    private String outputPath = "C:\\OpenSSL\\usr\\ssl\\misc\\certificatodajava.cer";
    private String exePath = "C:\\OpenSSL\\bin\\openssl.exe";
    p = run.exec(this.exePath+" ca -config C:\\OpenSSL\\usr\\ssl\\misc\\openssl.cnf  -in "+this.inputPath+" -out "+this.outputPath);
    dato questo comando la console mi chide la password
    io dovrei immettere la password.
    messa la password dovrei inserire per due volte y, esattamente come inserisco la password.

    come mi hai detto non va, avevo già tentato anche quello... sono senza idee e ci sto sbattendo da 2 giorni!!!
    help!!! VVoVe:
    stex1984

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.