Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Preparare una guida ai file batch
Nuovo argomento   Rispondi    Indice del forum -> Windows XP e Reperti Archeologici
Precedente :: Successivo  
Autore Messaggio
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 06 Set 2006 15:32    Oggetto: Preparare una guida ai file batch Rispondi citando

split da qui
chemicalbit


kluster ha scritto:
si, effettivamente se non hai mai avuto a che fare con il linguaggio BATCH (che è l'unica parte che si puo' dire complessa) puo' sembrare un po' complicato.
Questo mi ricorda che io dovrei preparare una guida ai file batch.
(se mi dimentico, sollecitatemi Ironico)


L'ultima modifica di chemicalbit il 06 Set 2006 16:43, modificato 1 volta
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 06 Set 2006 16:13    Oggetto: Rispondi citando

Questa è veramente ottima, sarebbe una bella cosa tradurla in italiano
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 06 Set 2006 16:37    Oggetto: Rispondi citando

kluster ha scritto:
Questa è veramente ottima, sarebbe una bella cosa tradurla in italiano
Sembra interessante.
quella però parla anche di utenti DOS, e soprattutto dà per scontato che si sappia cosa siano e come funzionino i comandi DOS,

mentre io vorrei fare più una cosa con la quale anche l'utente medio attuale in modo che riesca perlomeno a capire cosa siano e come fuzionino i file batch, anche se non ha mai sentito parlare non solo di file batch ma neppure di comandi DOS.

Semmai ne riparliamo in una zona più adatta.


p.s.: mi pare che il copyright di qulla pagina non autorizzi la traduzione
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 06 Set 2006 16:43    Oggetto: Rispondi citando

x farne una bella cosa bisognerebbe anche aggiungerci un riferimento ai comandi interni di xp/2000 (tipo questo - magari non tutti i comandi, solo i principali o i + utili).


EDIT: se ti serve una mano per scrivera te la do volentieri
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 06 Set 2006 17:04    Oggetto: Rispondi citando

kluster ha scritto:
aggiungerci un riferimento ai comandi interni di xp/2000 (tipo questo
Quelli non sono solo i coamndi estrermi ma anche gli interni.

In ogni caso io mi stavo orientando a fare qualcosa di leggero, che spieghi cosa siano e come funzionino i file batch (e al limite come fare qualche semplice batch)
Qualcosa tipo questa mia risposta e le mie seguenti nella stessa discussione (ma chiaramente più ampia e completa, con esempi, ecc.)

Ed eventulemnte fare poi una guida più dettagliata sui file batch e un'altra sui comandi dos.


kluster ha scritto:
EDIT: se ti serve una mano per scrivera te la do volentieri
Grazie.
Più che altro al moemnto il mio problema è proprio capire il preciso argoemnto e punto di vista da trattare.
Per cui questo confronto mi è utile.
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 06 Set 2006 17:24    Oggetto: Rispondi citando

un suggerimento almeno se io fossi un utente curioso mi farei queste domande

Che roba è? Come si scrive un file bat? Che comandi mi possono tornare utili per tutti i giorni?

Se fossi un utente un po' meno principiante magari che ha gia' masticato qualcosina di script:
E' un linguaggio con una sua sintassi?
Posso utilizzare e instanziare variabili?
Esiste il controllo condizionale o per lo meno posso controllare il flusso del programma?
Esistono dei comandi per la ripetizione delle azioni (for etc?)

Ha delle funzioni interne (e qui ci si ricollega ai comandi DOS) e cosa mi permettono di fare queste funzioni
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 22 Ott 2006 10:14    Oggetto: Rispondi citando

questo messaggio e i seguenti provengono da qui - n.d.Chemicalbit
kluster ha scritto:
Potresti provare creando un file .bat utilizzando a (...) winAction dato che uccide anche basandosi su titolo finestra o classe programma (...)
Citazione:

@echo off
WinAction -a close -c "CLASSE"
cls
Perché usare un file batch per un singolo comando?
(@echo off e cls servono solo per motivi estetici, e proprio perché si usa un file batch)

Basta associare
Codice:
WinAction -a close -c "CLASSE"
ad un'icona sul desktop o nel menù avvio, o simili.

oppure
kluster ha scritto:
Poi lo metti in operazione pianificata ogni tot ore o minuti etc
indicare l'intera riga di comando in "operazione pianificata"

L'ultima modifica di chemicalbit il 25 Ott 2006 15:44, modificato 1 volta
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 22 Ott 2006 13:00    Oggetto: Rispondi citando

Boh si hai ragione, fa prima, l'importante è che capisca quale è il comando utile, poi come lo usa, è come si trova meglio.

Io personalmente preferisco le operazioni da linea di comando metterle in un file .bat perchè puo' essere ampliato in qualsiasi momento ed editato anche da linea di comando.
E poi cls e echo non è solo per "estetica", ma è la convenzione corretta per evitare di sporcare l'output con altre cavolate nella finestra, di modo che se c'è un errore vede solo quello.
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 22 Ott 2006 13:43    Oggetto: Rispondi citando

kluster ha scritto:

Io personalmente preferisco le operazioni da linea di comando metterle in un file .bat perchè puo' essere ampliato in qualsiasi momento ed editato anche da linea di comando.


Sono completamente d'accordo, senza contare che una cartella, contenente tutti i batch, è più sotto controllo oltre che a essere "portabile" Wink
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 22 Ott 2006 14:34    Oggetto: Rispondi citando

kluster ha scritto:
E poi cls e echo non è solo per "estetica", ma è la convenzione corretta per evitare di sporcare l'output con altre cavolate nella finestra, di modo che se c'è un errore vede solo quello.
L' @echo off sì (per vedere solo gli errori, bisognerebbe anche rindirizzare lo standard output a nul , ma comunque già @echo off aiuta)

Ma perché cls in fondo?
anzi se c'è un messaggio d'eerrore non lo vedi perché lo schermo viene "pulito" (a parte che se lo lanci da windows senza aprire prima una finestra del prompt dei coamndi -ma o con esegui, o clickando su uncolelgamento, o sul file dalla sua cartella, ecc. - windows chiuderà automaticamente la finestra al termien del fiel batch )
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 22 Ott 2006 14:52    Oggetto: Rispondi citando

Citazione:

anzi se c'è un messaggio d'eerrore non lo vedi perché lo schermo viene "pulito" (a parte che se lo lanci da windows senza aprire prima una finestra del prompt dei coamndi -ma o con esegui, o clickando su uncolelgamento, o sul file dalla sua cartella, ecc. - windows chiuderà automaticamente la finestra al termien del fiel batch )

si nell'ottica che un file bat venga eseguito da interfaccia windows si, ma puo' essere il caso che venga eseguito in modalita' console, o all'avvio del sistema operativo prima dell'avvio della gui (diciamo questo era + per 95/98) quindi per convenzione lo metto sempre almeno è visibile solo ed esclusivamente l'output. Cmq passi che il cls si puo' anche evitare di mettere.
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 22 Ott 2006 14:56    Oggetto: Rispondi citando

ferma ferma, ho fatto un errore grosso come una casa, hai ragione.
il cls va messo prima
@echo off
cls
...... comandi
poi al max ci puoi aggiungere &2>1 ai comandi etc o quello che ti pare per buttarlo su file, su console etc
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 22 Ott 2006 15:02    Oggetto: Rispondi citando

kluster ha scritto:
ferma ferma, ho fatto un errore grosso come una casa, hai ragione.
il cls va messo prima
Ops .... Wink

Ecco perché non capivo.

Confessa, l'hai fatto apposta per vedere se ero attento Very Happy
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 22 Ott 2006 15:15    Oggetto: Rispondi citando

eheh, sono io il distratto.
In casa la mia distrazione è risaputa, infatti gli spigoli sporgenti di mobili/lampadari (ma perchè i lampadari, li mettono sempre a misura per gente bassa??), sono tutti smussati Laughing
Top
Profilo Invia messaggio privato
kluster
Dio maturo
Dio maturo


Registrato: 15/04/06 13:14
Messaggi: 2898

MessaggioInviato: 25 Ott 2006 17:34    Oggetto: Rispondi citando

Ti do' un paio di suggerimenti che magari ti possono fare comodo per la stesura delle Faq.


Nell'ottica dei file bat e delle tue faq, la console di 2000/xp e 2003 (che ha alcuni comandi aggiuntivi, molto utili come reg per scrivere nel registry, where per cercare etc) è stata notevolemmente migliorata rispetto a quella di 95/98, per esempio il
set con possibilita' di svolgere funzioni aritmetiche
Codice:

set  pippo = 0
set /A pippo +=1
set /A pippolanna = (23+15) * "%pippo%"


o il set /P che apre il prompt per la richiesta di inserimento dato.
Codice:
set /p choice=Inserisci il tuo nome, non inserire pippo
if "%choice%" == "pippo" goto USCITA


il reindirizzamento dell'output
comando1 | comando2 manda l'output del comando1 al comando 2

comando1 < NOMEFILE riceve l'input da NOMEFILE

comando1 > NOMEFILE manda l'output a NOMEFILE

comando1 >> NOMEFILE accoda l'output a NOMEFILE

comando1 2> NOMEFILE invia a NOMEFILE solo l'output di errore.

comando1 2> & 1 NOMEFILE invia a NOMEFILE sia l'output standard che l'output di errore

il concatenamento dei comandi

& comando1 & comando2 &.....
es.
Codice:
D: & cd "Documenti"

esegue un comando dopo l'altro
&& Comando1 && Comando2
es.
Codice:
cd "Documenti" && del *.txt

esegue Comando2 se Comando1 viene completato correttamente (una sorta di if)
|| Comando1 || Comando2
es.
Codice:
cd myDoc || cd "MyDocuments"

esegue Comando2 se Comando1 NON viene completato correttamente (una sorta di if not)

Per il for invece ho qui accanto a me stampato la tabellina delle opzioni del for (un grazie al nostro sistemista):
Codice:
for /f ["OPZIONI"] %%VARIABILE in (origine) do (istruzione)

dove OPZIONI possibili sono:

eol = imposta il carattere di commento di fine riga (tutto quello che segue è considerato commento)
es. eol=# il carattere # è considerato commento di fine riga

skip = stabilisce il numero di righe da saltare.
es. skip=5, salta le prime 5 righe del file

delims = imposta i delimitatori di campo
es. delims=,..: specifica che virgole, punti e 2 punti sono delimitatori

tokens = specifica quali campi del tracciato della riga devono essere utilizzati (es. una riga composta in questo modo:
Silvio Berlusconi delinquente, Silvio è il 1° tokens, Berlusconi il 2°, delinquente il 3°)
es. tokens=1,3 specifica di usare il campo 1 ed il 3
es. tokens=1-3 specifica di usare campo 1, campo 2 e campo 3
es. tokens=* esamina intera riga senza suddividere in campi

usebackq = specifica che si possono utilizzare virgolete (back quote) nel nome degli argomenti del for che contengono spazi ed altri caratteri problematici.

L'uso delle opzioni possono essere combinati separando ogni comando da uno spazio.

Es.
set valore=Tutti,Alcuni,Nessuno
Codice:
for /f "delims=, tokens=1,3" %AA in ("%valore%") do (echo %%A %%B)


l'ouput è
Tutti Nessuno

altro esempio: Parlamento.txt composto da queste 4 righe:
Codice:

Attenzione! Il file potrebbe non essere aggiornato:

Silvio§Berlusconi§silvio.berlusconi@forzaitalia.it§Arcore, Villa Certosa$17
Cesare§Previti§cesare.previti@forzaitalia.it§Milano, Piazza Farnese$6

si puo' usare un comando del genere per formattare l'output
Codice:
for /f "skip=2 tokens=2-6 delims=§ usebackq" %%C in ("type "File Utente.txt"") do (echo
Deputato: %%C, residenza: %%E, indirizzo email: %%D, processi in cui è (o stato) coinvolto: %%F)
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 31 Ott 2006 00:28    Oggetto: Rispondi

Sì,

non li conosco benisismo ma avevo sentito dire che esistevano

Diciamo che quando mi servono provo a guardare l'help
( for /? tra l'altro da delle spiegaizoni con in alcuni punti delle cose non molto comprensibili (errore di "stampa"?)


Però non sapventiamo i novizi con quete cose,
il principale vantaggio dei file batch (normali, non quelli "mostruosi" Smile con questicomandi) sta nella loro semplicità e facilità.
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Windows XP e Reperti Archeologici Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi