Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    No è il mio cervello che funziona a intermittenza :master:
    Ecco a lei mio buon amico:

    taskkill /FI "windowtitle eq pippo - prova.start" /IM cmd.exe /F

    così a me funziona sempre

    Questo perchè con start si apre una nuova finestra, ma effettivamente il file.bat era prova.start ...
    naturalmente quando termina il lavoro di prova.start.bat il padre non ucciderà più il figlio (perchè già chiuso)
    Experience is what you get when you don’t get what you want

  2. #12
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    Dunque, mi fa piacere vedere che siamo sulla stessa lunghezza: anch'io guardando la finestra del bat figlio ho notato che in realtà il nome è "pippo - prova.start", però a me dava un errore che aveva qualcosa a che fare con il trattino '-'....allora non ho insistito, ma ora riprovo...

    Però non ti seguo su una cosa....il filglio non deve terminare le operazioni....prova a cambiare il tempo di choice da 100 a 99 (mi sa che con tre cifre ci sono problemi...anzi metti 58...così siamo sicuri....), questo in "prova.start.bat".

    Ora, il figli (prova.start.bat) non può finire da solo, se tutto funziona come vogliamo.
    Ti ricordo che è il pdre a dover uccidere il figlio prima che termini (questo simula il crtl-c).
    Cioè in pratica invece di dare un comando e premere ctrl+c, facciamo partire una nuova finestra che contiene quella operazione e poi la sopprimiamo in modo da simulare la forzatura....

    L'utilità di tutto ciò si ha quando l'operazione da interrompere ha tre caratteristiche:

    1- deve essere lanciata
    2- è inutile che venga portata a termine
    3- è lunga (ecco perchè c'è il choice con 58 secondi).

    Se hai dubbi, magari ridai un occhiata ai primi post....posso essermi soiegato male io.

    Ad ogni modo veniamo al sodo:

    1- il padrelancia il figlio
    2- il padre aspetta 3 secondi (poco tempo, insomma)
    3- il padre uccide il processo figlio (che deve ancora essere in funzione, altrimenti non ha senso tutta questa storia...)

    comunque ora provo il tuo consiglio sul filtro....ci si sente....e naturalmente grazie, come al solito.

  3. #13
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    Mi sa che hai ragione, perchè nonostante la finestra del figlio resti aperta fino a che non finisce le operazioni, mi dice che:

    ESITO POSITIVO: Il processo "cmd.exe" con il PID 2340 è stato terminato.

    In realtà, ripeto, la finestra del figlio resta aperta ancora per il famosi 58 seccondi, invece io mi aspettavo che si chiudesse...

    prova questi due:

    -------------------------------
    figlio: "prova.start.bat"
    -------------------------------
    rem prova.start.bat
    echo "hello I'm prova start"
    choice /t:y,58
    echo "non interrotto"
    choice /t:y,5
    -------------------------------


    **** **** **** ****

    -------------------------------
    padre: "father.start.bat"
    -------------------------------
    @echo off

    echo "hi, I'm father process"
    choice /n /t:y,5
    start "pippo" prova.start.bat
    choice /n /t:y,2
    taskkill /FI "windowtitle eq pippo - prova.start.bat" /IM cmd.exe /F
    choice /n /t:y,5
    echo "ok...io proseguo le operazioni"
    echo "bla"
    choice /t:y,2
    echo "bla"
    echo "bla"
    choice /t:y,2
    echo "bla"
    echo "bla"
    choice /t:y,2
    echo "bla"
    choice /t:y,2
    echo "bla"
    -------------------------------

    Come potrai notare il padre prosegue le operazioni fino alla fine dicendo fra l'altro che il processo figlio è nterrotto con esito positivo.
    Il processo figlio però, in realtà non termina, almeno lafinestra resta aperta fin quando non finisce i choice dei 58 secondi....perchè?

    Secondo me per il fatto che il figlio si che si interrompe, ma non prima di finire l'ultima operazione che stava eseguendo al momento del taskkill da parte del padre.
    Infatti se ci fa caso, le ultime due operazioni del figlio, non vengono eseguite, perchè la finestra del figlio si chiude alla fine del choice dei 58 secondi.

    In poche parole tutto questo non equivale per nulla ad un ctrl+c e non ha alcuna utilità ai miei fini, perchè i 58 secondi li devo aspettare in ogni caso. io volevo che si chiudesse la finestra del figlio dopo 2 secondi dal lancio, come puoi vedere dal sorgente del padre.....

  4. #14
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    Ho capito l'errore:

    nel file padre, "father.start.bat" ho sostistuito la stringa

    "taskkill /FI "windowtitle eq pippo - prova.start.bat" /IM cmd.exe /F"

    con la seguente

    "taskkill /FI "windowtitle eq pippo - prova.start.bat" /IM cmd.exe /F /T"

    in modo che vengano terminati anche i processi generati da figlio, nel nostro caso viene terminato anche l'operazione "choice".
    Così funziona come mi aspettavo:

    1- il padre lancia il figlio, che effettua un'operazione "lunga" (precisamente 58 secondi)
    2- il padre attende solo 2 secondi e poi uccide il processo figlio: la finestra prova.start.bat si chiude.
    3- il padre continua le sue operazioni successive fino alla fine.

    Ecco che in questo modo si è simulata l'interruzione forzata di un operazione, demandandola ad un altro processo bat e quindi uccidendo il processo a lui corrispondente. Era quello che si voleva...provare per credere.

    Concludo questo post dicendo che ho poi provato ad adattare questa soluzione nello script che gestisce la mia connessione ad internet (connessione attraverso un cellulare Nokia 6230 e tecnologia EDGE con operatore Tim).
    Purtroppo non funziona come mi aspettavo. Mi sembra più opportuno aprire un nuovo post per parlarne...lo apro poi metto un link in questo....

  5. #15

  6. #16
    Cmq a me funziona senza aggiungere il .bat

    taskkill /FI "windowtitle eq pippo - prova.start" /IM cmd.exe /F
    Experience is what you get when you don’t get what you want

  7. #17
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    ah..ok.

    A me invece non funziona così e ho dovuto cambiar quella stringa come ho mostrato prima.
    Comunque poco male...l'importante è che funzioni

    Chiudo.

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.