giovedì 10 febbraio 2011

Windows come Linux - Lo Scriptomane - livello MEDIO

Buongiorno a tutti, scrivo questo post per mostrare a tutti alcune funzionalità della shell dei comandi windows, che la rendono (combinata con gli altri linguaggi di script supportati, come vbscript e jscript) potente come la tanto chiacchierata shell di linux.
Tanto per cominciare voglio dire che io sono un bilingue dei sistemi operativi. Mi piacciono molti sistemi e uso volentieri le più disparate versioni di OS (non solo *NIX!) in base all'obiettivo che cerco di raggiungere.
Le mie competenze che voglio qui condividere mi hanno valso il soprannome di scriptomane, tra i miei colleghi, ed alcuni sistemisti linux con cui ho collaborato hanno osservato: ma tu usi windows come linux!
Oggi voglio parlare delle alternative windows batch al potentissimo comando unix GREP. Lo sapevate che anche in windows é possibile analizzare l'output di un comando, ad esempio, con le regular expressions? I comandi batch FIND e FINDSTR permettono l'uno uno startup semplice per chi non ha bisogno di regular expressions o ricerche multiple, l'altro lo stadio più avanzato della ricerca nei files, nelle directory e nell'output dalla pipe.
Per chi non lo sapesse, la pipe é un modo di redirezione dell'output che proviene dai sistemi *nix e che era già implementato in DOS da una certa versione.
Un semplice modo per passare l'output di un comando ad un secondo comando é
Comando1 | Comando2, ad esempio:
Netstat -n | FIND ":25 "
Mostrerà tutte le connessioni di rete attive sulla porta 25, sia che esse siano in ingresso, sia che siano in uscita.
Dir /A-D /B | Findstr /I /R "[sa].*[bg]\..* [a-fzx]*\..*"
Cerca tutti i files nella directory corrente che non sono directory (/A-D), con qualsiasi estensione e il cui nome
  1. cominci per s oppure per a e finisca per b oppure per g, con qualsiasi estensione.
  2. oppure contenga solo a, b, c, d, e, f, z oppure x, con qualsiasi estensione.
Notate lo spazio che separa le due regular expressions usate per analizzare l'output del comando DIR.


Ed ecco che abbiamo descritto una funzione evolutissima della shell command-line di Windows.
A mio avviso è il metodo perfetto per ottenere output filtrati ulteriormente analizzabili/utilizzabili da altri script.

Si può anche iserire i risultati in un ciclo for per operare azioni sulla base di ogni riga outputtata... ma questo ve lo dico in un altro post....


Ciao!

Nessun commento:

Posta un commento

I commenti sono soggetti a moderazione, prima di essere pubblicati.

Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.