Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115

    [BATCH]: interrompere operazione prima che termini

    Salve a tutti.

    Avrei la necessità di scrivere un semplice file batch per automatizzare una serie di operazioni.
    Vi riporto nell'ordine, la sequenza di operazioni che effettuo manualmente:

    1) rasdial nome_connessione_di_rete /phone:NumeroTelefonoAlternativo
    2) Ctrl+c (per bloccare l'operazione precedente...questo è il nodo della questione e non saprei come automatizzare questa operazione)
    3) rasdial nome_connessione_di_rete (chiama il numero predefinito.)

    Ora non vi sto a spiegare le ragioni di questa serie di operazioni, che possono sembrare senza logica. Vi dico solo che servono per sbloccare il modem gprs, quando si "addormenta" la connessione...forse chi ha avuto a che fare con questo tipo di connessioni, ne sa qualcosa....ma non è indispensabile conoscere nello specifico tutto.

    Mi basta capire come poter eseguire in un file batch le prime due operazioni. Ma non so come si possa interrompere l'operazione (1). Manualmente dò un bel ctrl+c, ma vorrei farlo in modo automatico.

    Un'idea che può essere utile a chi legge questo post, per aiutarmi, potrebbe essere la seguente.

    Immaginiamo due file batch.


    --------------------------------------------
    pimo.bat: contenente la seguente sequenza:

    start secondo.bat
    choice t:y,5
    "ferma e chiudi" secondo.bat
    choice t:y,5 (forse non necessario.....comunque non importante ai fini della domanda)
    rasdial nome_connessione_di_rete (chiama il numero predefinito.)
    --------------------------------------------

    --------------------------------------------
    secondo.bat contenente la seguente sequenza:

    rasdial nome_connessione_di_rete /phone:NumeroTelefonoAlternativo
    --------------------------------------------



    Spero di essere stato chiaro:

    riassumendo:

    è possibile simulare il "ctrl+c" per fermare un'operazione all'interno di un file bat?
    Un' idea l'ho mostrata, ma non so come tradurre in un comando (causa mia ignoranza) la frase "ferma e chidi" secondo.bat.
    Se un tale comando esistesse potrebbe funzionare ed essere sufficiente.

    Spero in una vostra risposta, magari in modo semplice, visto che sono alle prime armi.

    Ringrazio in anticipo, Arrisentirci.

  2. #2
    Non credo esista nulla in bat che possa simulare la pressione di una sequenza...
    Esiste il "pause" che blocca l'esecuzione fino alla pressione di un tasto ma nn fa al caso tuo forse...
    Experience is what you get when you don’t get what you want

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    Innanzitutto grazie della risposta.

    No, il pause non fa al caso mio....almeno penso. (può essere visto un po' come il choice, no?).

    No, il ragionamento che facevo io era:

    se da un file bat, chiamiamolo "padre", posso far partire un secondo file bat "figlio" col comando "start", non è possibile dal file padre interrompere il file fliglio?

    Se esistesse un tale comando, probabilmente potrei far partire (v.di esempio sopra...) il "secondo.bat" e successivamente, terminarlo quando voglio (in modo automatico..chiaramente), senza aspettare che abbia concluso tutte le operazioni. Non credi?

    Sul mio pc ho installato "cygwin", un emulatore, di shell bash.....chissà se potrei risolvere scrivendo uno script bash....Anche lì sono alle prime armi però.

    Se vi viene qualche idea fatemi sapere, grazie. A presto

  4. #4
    Non saprei (vedo se trovo niente)
    Experience is what you get when you don’t get what you want

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    EDIT by ccccc: opss.....ora dovrebbe andare

    http://www.tech-recipes.com/windows_tips446.html

    Ho trovato questo. Cosa ne pensi?

    Ora cerco più info a riguardo. Piccolo problema, se dal prompt do taskkill /? non lo riconosce...può essere che non sia compreso nella verisione home di xp che ho io....ora vedo se posso risolvere...

    Arrisentirci.

  6. #6
    Ho trovato questo. Cosa ne pensi?
    che hai sbagliato link
    Experience is what you get when you don’t get what you want

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    link corretto

  8. #8
    Si, termina il processo...
    Io ho provato a fare così:

    ...
    start file2
    pause
    taskkill /IM CMD.EXE /T
    pause
    ...

    /im perchè specifico il nome dell'immagine
    /t per uccidere i figli

    però non credo sia corretto (il risultato è ok.... sul mio pc), genera un'errore, lecito, ossia un "processo non può autoterminarsi"....
    Experience is what you get when you don’t get what you want

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    115
    Io ho provato a fare così:

    file padre: "father.start.bat"

    echo "hi, I'm father process"
    start "pippo" prova.start.bat
    choice /n /t:y,5
    taskkill /FI "windowtitle eq pippo" /IM cmd.exe /F


    file figlio: "prova.start.bat"

    echo "hello I'm prova start"
    choice /n /t:y,100
    echo "non interrotto"


    Cosa dovrebbe succedere:

    Il file padre dopo essersi presentato (...lo so..triste idea...va bè...), lancia il file figlio in una nuova finestra di titolo "pippo" e attende 5 secondi dopo di che dovrebbe uccidere il processo figlio. Come puoi vedere ho utilizzato il nome immagine cmd.exe e per distinguere il padre dal figlio ho coinvolto come discriminante il filtro (opzione di taskkill "/FI") "windowtitle":
    questo perchè voglio che il padre continui a lavorare e che solo il figlio venga interrotto!!!!
    Il processo figlio da parte sua, fa ben poco....in pratica aspetta 100 secondi in modo che quando il padre lo uccide, è ancora in esecuzione.

    Quindi in pratica mi aspettavo che:
    1- il padre fa partire il figlio aprendo una nuova finestra del prompt
    2- dopo cinque secondi il padre termina il processo corrispondente al figlio

    Cosa succede invece:

    1- il padre fa partire il figlio in nuova finestra intitolata "pippo"
    2- il figlioresta in attesa come previsto
    3- il padre, dopo cinque minuti dal lancio, esegue il comando taskkill che prontamente dà un errore: cioè non riconosce un processo col titolo di finestra uguale a "pippo"....eppure me la vedo davanti al naso!!!....bho...

    Se non metto il filtro vengono terminati tutti i processi cmd.exe (qundi sia padre che figlio e non va bene, perchèil padre deve contenere poi altre istruzioni successive.....)

    Se hai idee fammi sapere. Arrisentirci e grazie della disponibilità.

  10. #10
    Strano...
    L'ho provato e funziona a intermittenza
    Experience is what you get when you don’t get what you want

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