locked
Come rilevare la fine esecuzione di comando in powershell RRS feed

  • Domanda

  •  Salve,

    sto scrivendo uno script in powershell e non riesco a rendere sospensiva l'esecuzione un comando che converte un file.

    In pratica, ho un Prog.exe,  che riceve dei parametri in riga comando, ed esegue una conversione in csv.

     L'istruzione è  del tipo:

      CnvToCsv.exe  $FileInp_xls  $FileOut_csv  $Separatore 

    Il problema è che l'esecuzione dello script non attende la fine del programma e 

    quindi va in errore nelle istruzioni successive.

    Come si esegue il comando in modalità sospensiva in powershell? 

    Grazie per il vs aiuto.

    Filippo

      

    martedì 12 gennaio 2016 16:31

Risposte

  • Ciao,

    procva a usare start-process con il parametro -wait

    REF: https://technet.microsoft.com/en-us/library/hh849848.aspx

    Edit: Ho appena provato, funziona


    This post is provided AS IS with no warranties or guarantees, and confers no rights.
    ~~~
    Questo post non fornisce garanzie e non conferisce diritti



    martedì 12 gennaio 2016 16:56
  • Un'altro modo è (meno elegante, ma più rapido) per aver una esecuzione sincrona di una "windows application" è forzare l'output es. aggiungi uan pipe su out-null

    CnvToCsv.exe  $FileInp_xls  $FileOut_csv  $Separatore |out-null

    CnvToCsv.exe  $FileInp_xls  $FileOut_csv  $Separatore |out-null
    dir
    ## Come trasformare la calcolatrice di windows da asincrona a sincrona (usare la calcolatrice ha poco senso... lo so)
    calc|out-null
    "Hai terminato la calcolatrice, ma ora eseguo il notepad.."
    notepad|out-null
    "fine"
    
    Ciao


    Gastone Canali >http://www.armadillo.it


    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    mercoledì 13 gennaio 2016 00:14
    Moderatore

Tutte le risposte

  • Ciao,

    procva a usare start-process con il parametro -wait

    REF: https://technet.microsoft.com/en-us/library/hh849848.aspx

    Edit: Ho appena provato, funziona


    This post is provided AS IS with no warranties or guarantees, and confers no rights.
    ~~~
    Questo post non fornisce garanzie e non conferisce diritti



    martedì 12 gennaio 2016 16:56
  • Un'altro modo è (meno elegante, ma più rapido) per aver una esecuzione sincrona di una "windows application" è forzare l'output es. aggiungi uan pipe su out-null

    CnvToCsv.exe  $FileInp_xls  $FileOut_csv  $Separatore |out-null

    CnvToCsv.exe  $FileInp_xls  $FileOut_csv  $Separatore |out-null
    dir
    ## Come trasformare la calcolatrice di windows da asincrona a sincrona (usare la calcolatrice ha poco senso... lo so)
    calc|out-null
    "Hai terminato la calcolatrice, ma ora eseguo il notepad.."
    notepad|out-null
    "fine"
    
    Ciao


    Gastone Canali >http://www.armadillo.it


    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    mercoledì 13 gennaio 2016 00:14
    Moderatore
  • Grazie 1000,

    Filippo 

    mercoledì 13 gennaio 2016 07:53
  • Grazie 1000!

    mercoledì 13 gennaio 2016 08:07