Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    8

    [VBS] Problema esecuzione .exe e uscita

    Salve ragazzi volevo chiedervi un vostro parere perchè ho un problema con uno script che mi sta facendo diventare scemo, vi descrivo il problema è poi sotto posto il codice:

    In pratica ho un ottimizzatore.exe che dopo una serie di iterazione mi genera un file "ottimo.dat".
    Questo ottimizzatore deve dialogare con il mio VBScript.

    Quindi il mio VBS prima lancia l'ottimizzatore, poi dialoga con lui (scambiandosi una serie di file) ed una volta che l'ottimizzatore ha terminato voglio semplicemente che mi appaia una msgbox che mi dica "finito" (ovviamente piu avanti vorro leggere questo ottimo.dat ma per ora non mi interessa).

    Perciò dopo aver lanciato l'ottimizzatore ho fatto un ciclo:


    do while (ottimio.dat non esiste)

    qua intanto dialogo con ottimizzatore.exe

    loop
    msgbox("finito")


    Il problema è sostanzialmente che una volta che l'ottimizzatore.exe ha finito e quindi viene creato "ottimo.dat" il ciclo while termina ma lo script invece di andare avanti dandomi anche il msg "finito", esce.

    Ho sbagliato qualcosa nell'oggetto WScript Shell per caso?

    Ripeto il mio problema è perchè una volta creato ottimo.dat lo script mi termina e non mi considera ciò che c'è dopo?

    Grazie a tutti.



    codice:
              Set fso = CreateObject("Scripting.FileSystemObject")
    	  
    	  Set objShell = CreateObject("WScript.Shell")
    	  objShell.CurrentDirectory = "C:\TEST"
    	  objShell.Run ("%comspec% /c ottimizzatore.exe")	   'lancio ottimizzatore.exe
    
    	  do While (Not fso.FileExists("C:\TEST\Ottimo.dat") )
    			
    '		Qua dialogo con il .exe scambiandomi dei file		
    	
    	  loop
    	                                             'Ottimizzatore.exe ha finito, ottimo.dat è stato      
    	  msgbox("trovato")       'creato ma lo script qua esce e non mi da il msg       "trovato"

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A me funziona.

    Eventualmente prova a modificare la riga do while esplicitando il confronto, così:

    Do While (fso.FileExists("C:\TEST\Ottimo.dat") = False)


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    8
    Originariamente inviato da gibra
    A me funziona.

    Eventualmente prova a modificare la riga do while esplicitando il confronto, così:

    Do While (fso.FileExists("C:\TEST\Ottimo.dat") = False)

    Ok Gibra grazie, domani provo.

    Per curiosità, la prova l'hai fatta anche te lanciando .exe all'inizio oppure hai testato solo il loop?

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sì, ho provato lanciando il notepad.exe
    e dopo aver salvato il file, mi appare il messaggio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    8
    Ciao Gibra.

    Evidentemente la notte porta consiglio.

    Il problema non era inerente al loop while in se ma al fatto che al suo interno c'era un'altro loop in cui lo script aspettava un file richiesta.txt generato dall'ottimizzatore.
    Questa richiesta nell'ultimo giro non veniva generata e quindi lo script si bloccava in attesa di questo .txt.

    Me ne sono accordo guardando i processi e notando che non terminavano..

    Grazie mille per la disponibilità!

    Vecio...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.