PDA

Visualizza versione completa : Help Automatismo


Pippetto
30-05-2009, 17.14.20
Salve. Per me è la prima volta che entro in un forum.
Vorrei ottenere da voi un aiuto su un particolare automatismo (se possibile da fare).

Si tratta di questo: Vorrei creare un file *.bat che inponga le seguenti azioni.

aprire un programma all avvio del nuovo file. questo programma dovrà essere chiuso dopo un ora e con una pausa di un minuto deve essere ri avviato e così all infinito.... 1 ora di lavoro un minuto di pausa...

Non so se è possibile ma vi chiedo aiuto perkè in realtà sarebbero 30 programmi che si affiancherebbero in questo modo. :wall:
Saluti e grazie in anticipo sulla sperata risposta ed attenzione

Alhazred
30-05-2009, 18.33.44
Penso che un semplice bat non possa soddisfare le tue esigenze, dovresti fare un programmino in qualche linguaggio di programmazione (ce ne sono molti che andrebbero bene, dipende dalle tue conoscenze) che resti attivo in background e che faccia ciò che ti serve.

Pippetto
30-05-2009, 19.30.51
Grazie avermi risposto Alhazred.
purtroppo però non sono riuscito a trovarne uno che mi chiuda l' appliazione.
tutti aprono ma non chiudono ed in alcuni devo designare un nuovo processo per ogni funzione. ad esempio con WakeupOnStandBy non le chiude e sono costretto a dare una configurazione per ogni fase e per ogni programma trovandomi aperte oltre i 30 programmi anche altri 30 wakeUp.. per la prima ora..per la seconda..azz

Sergio Neddi
30-05-2009, 21.53.18
Un esempio di batch per aprire IE su di una determinata pagina, attendere 10 secondi e chiuderlo, ripetendo l'operazione in loop infinito:

@echo off
:1
start "iexplore.exe" "http://www.wintricks.it"
ping -n 10 127.0.0.1 >nul
taskkill /f /IM iexplore.exe
goto 1

In questo caso si usa il comando taskkill per chiudere la sessione di IE.
E' ovvio che affinché la cosa funzioni correttamente ci dev'essere una sola sessione pel programma attiva per volta.
Vedi se ciò può essere utile.
Questo invece è l'help di taskkill:

TASKKILL [/S sistema [/U nomeutente [/P [password]]]]
{ [/FI filtro] [/PID idprocesso | /IM nomeimmagine] } [/F] [/T]

Descrizione:
Questo strumento della riga di comando può essere utilizzato per terminare u
no o più processi.
I processi possono essere interrotti dalla id processo o dal nome immagine.

Elenco parametri:
/S sistema Specifica il sistema remoto a cui connetter
si.

/U [dominio\]utente Specifica il contesto utente in cui
eseguire il comando.

/P [password] Specifica la password per il dato
contesto utente. Se omesso, viene richiesto.

/F Specifica la terminazione forzata
processo(i).

/FI filtro Visualizza una serie di attività che corrisp
ondono a un
dato criterio specificato dal filtro.

/PID id processo Specifica il PID del processo che
deve essere terminato.

/IM nome immagine Specifica il nome immagine del processo
che deve essere terminato. Carattere jolly '*'
può essere utilizzato per specificare tutti i nomi im
magine.

/T Eliminazione struttura: termina il processo specifica
to
e tutti i processi figlio avviati dallo stesso.

/? Visualizza la Guida\Utilizzo.

Filtri:
Nome filtro Operatori validi Valore/i valido/i
----------- --------------- --------------
STATUS eq, ne IN ESECUZIONE | NON RISPONDE
IMAGENAME eq, ne Nome immagine
PID eq, ne, gt, lt, ge, le Valore PID
SESSION eq, ne, gt, lt, ge, le Numero di sessione
CPUTIME eq, ne, gt, lt, ge, le Tempo di CPU nel formato
oo.mm.ss.
hh - ore,
mm - minuti, ss - secondi
MEMUSAGE eq, ne, gt, lt, ge, le Utilizzo della memoria in KB
USERNAME eq, ne Nome utente in formato
[dominio\]utente
MODULES eq, ne Nome DLL
SERVICES eq, ne Nome servizio
WINDOWTITLE eq, ne Titolo finestra

Nota: Il carattere jolly '*' per l'opzione /IM è ammesso solo insieme ai filtri.


Nota: La terminazione dei processi remoti verrà sempre eseguita in modo forzato
a prescindere dall'eventuale specificazione dell'opzione /F.

Esempi:
TASKKILL /S sistema /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe /IM mspaint.exe
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
TASKKILL /S sistema /U dominio\nomeutente /FI "USERNAME ne NT*" /IM *
TASKKILL /S sistema /U nomeutente /P password /FI "IMAGENAME eq note*"

Per completezza riporto anche l'help di un altro comando per la gestione dei task, tskill:

Termina un processo.

TSKILL idprocesso | nomeprocesso [/SERVER:nomeserver] [/ID:idsessione | /A] [/V]


idprocesso L'ID processo del processo da terminare.
nomeprocesso Il nome del processo da terminare.
/SERVER:nomeserver Il server contenente l'ID processo (valore predefinito: server corrente).
Quando si utilizza il nome processo è necessario specificare l'opzione /ID o /A
e /SERVER
/ID:idsessione Termina il processo in esecuzione nella sezione specifica
ta.
/A Termina i processi in esecuzione in TUTTE le sessioni.
/V Visualizza le informazioni sulle operazioni in esecuzione.

Pippetto
31-05-2009, 12.25.25
:jump: Grazie mille Sergio davvero una bella risposta. ho trovato quello che mi serviva e anche un utile approfondimento.
Comunque ho pure scaricato un nuovo programma "z-cron" che offre svariate possibilità di automatyizzazione del sistema dei programmi e con un bel calendario eventi comprensivo di orari... molto bello . dà pure la possibilità di espandere le sue capacità. infatti... :inn: pensavo di chiederti un ultima cosuccia su questo perkè penso di usarlo.
Potresti dirmi cosa devo scrivere dopo il "nomefile" per far si che quando lo carico non venga aperto in immediato ma solo dopo 1 minuto esatto?
Ciao grazie . buona Domenica a tutti :act:

Sergio Neddi
31-05-2009, 15.55.30
Scusa, non ho ben capito cosa intendi... per eseguire i comandi all'interno del batch a distanza di un minuto uno dall'altro dovrebbe bastare interporre:

ping -n 60 127.0.0.1 >nul

tra le righe, se invece intendi altro, tipo qualche funzione di z-cron non ne ho idea.

Pippetto
31-05-2009, 16.58.35
si.. mi sono spiegato malissimo scusami.
la potremmo prendere come una domanda separata:
--- io vorrei caricare il file Pippetto.bat ---
--- vorrei che quando lo mando non si apra n subito ---
quindi mi domandavo se ad esempio .. anzi chè caricare il file "Pipetto.bat" scrivendo: C:\Pippolandia\pippetto
potrei caricarlo con un immaginario.. :-D.. : C:\Pippolandia\pippetto -"regola ritardo secondi 60".
Grazie Gentilissimi
P.s. : se non merita risposta scusatemi , sono un tantino ignorante

Sergio Neddi
31-05-2009, 17.34.30
Diciamo che ti basta mettere la linea che ho postato sopra come prima linea del batch, in tal caso il batch parte subito lo stesso immediatamente, ma l'esecuzione delle istruzioni viene ritardata di tot secondi per il valore che viene impostato nella prima linea.
Altrimenti puoi anche impostare il tempo, anziché fisso nel batch, come parametro, ad esempio, modificando la linea così:

ping -n %1 127.0.0.1 >nul

Poi da linea di comando esegui:

C:\Pippolandia\pippetto 60

e questo sostituisce nell'esecuzione il parametro %1 del batch con il valore che dai da linea di comando, in questo caso 60, quindi l'esecuzione delle linee seguenti del batch verrà ritardata dei secondi che vuoi.

Pippetto
31-05-2009, 20.43.26
Grazie Sergio!!
perfetto, funziona! ora posso fare tante altre cose che prima non potevo fare.
:jump: :jump: :jump: :jump: :jump: :jump: :jump: