Un super script promotionnel (et trollesque) Batch
44 réponses
Do Re Mi chel La Si Do
Bonjour !
Je vous ai concocté le script ci-dessous, pour montrer l'incroyable
supériorité du Batch, sur tous les autres langages de script (y compris le
Verlan). Seul Python, AutoIt! et l'Occitan peuvent faire aussi bien.
J'attend, d'ailleurs, les réactions épidermiques, et, forcément partiales
(normal ; yakemoi qui suis, par hypothèse, impartial).
Bref, que fait ce script ? Hé bien, il verrouille un site, par son adresse
IP et un port. Dès que l'on veut s'y connecter, le process est tué (dans les
2 secondes).
Pour tester, j'ai mis l'adresse IP d'un de mes sites : http://ponx.org
Lancez le script dans une invite de commande ; lancez I.E. ; allez sur
http://ponx.org ; constatez.
@+
MCI
PS : le script est prévu pour Windows-XP-Pro en français.
Voilà le script :
@echo off
:: Supprime les process qui se connectent à une adresse IP
set IPDEL=213.186.47.206:80
:: pour tester : http://ponx.org
:SCAN
set PID=
netstat -ano |find "%IPDEL%" >TEMP.TXT
for /F "usebackq tokens=*" %%i in (TEMP.TXT) do (call :STO %%i)
if X%PID%X==XX goto :CONTINUE
call :TRAIT %PID%
:CONTINUE
sleepm 2000
goto :SCAN
Salutations *Do Re Mi chel La Si Do* ! Dans <news: tu nous disais :
Bref, que fait ce script ? Hé bien, il verrouille un site, par son adresse IP et un port. Dès que l'on veut s'y connecter, le process est tué (dans les 2 secondes).
On peut le faire en VBS, mais ce serait plus long...
...j'attends l'arrivée d'un Monad'ien... ;)
@+
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Do Re Mi chel La Si Do* !
Dans <news:OJqcKAgtFHA.3596@TK2MSFTNGP15.phx.gbl>
tu nous disais :
Bref, que fait ce script ? Hé bien, il verrouille un site, par son
adresse IP et un port. Dès que l'on veut s'y connecter, le process
est tué (dans les 2 secondes).
On peut le faire en VBS, mais ce serait plus long...
...j'attends l'arrivée d'un Monad'ien... ;)
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Do Re Mi chel La Si Do* ! Dans <news: tu nous disais :
Bref, que fait ce script ? Hé bien, il verrouille un site, par son adresse IP et un port. Dès que l'on veut s'y connecter, le process est tué (dans les 2 secondes).
On peut le faire en VBS, mais ce serait plus long...
...j'attends l'arrivée d'un Monad'ien... ;)
@+
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Do Re Mi chel La Si Do
Re
On peut le faire ... ce serait plus long...
On peut le faire avec la plupart des langages (peut-être pas avec BrainFuck, WhiteSpace, ou Piet). Ce sera presque toujours plus long, plus difficile à mettre au point, plus gourmand en mémoire. Mais ce serait certainement avec une interface plus jolie.
Ce script, c'était juste pour taquiner un peu les lecteurs.
@-salutations
Michel Claveau
Re
On peut le faire ... ce serait plus long...
On peut le faire avec la plupart des langages (peut-être pas avec BrainFuck,
WhiteSpace, ou Piet). Ce sera presque toujours plus long, plus difficile à
mettre au point, plus gourmand en mémoire. Mais ce serait certainement avec
une interface plus jolie.
Ce script, c'était juste pour taquiner un peu les lecteurs.
On peut le faire avec la plupart des langages (peut-être pas avec BrainFuck, WhiteSpace, ou Piet). Ce sera presque toujours plus long, plus difficile à mettre au point, plus gourmand en mémoire. Mais ce serait certainement avec une interface plus jolie.
Ce script, c'était juste pour taquiner un peu les lecteurs.
@-salutations
Michel Claveau
~Jean-Marc~ [MVP]
Salutations *Do Re Mi chel La Si Do* ! Dans <news: tu nous disais :
Ce script, c'était juste pour taquiner un peu les lecteurs.
Non ? Je ne m'en doutais pas... ;-)
Quand même, je serais curieux de voir la même chose avec Monad...
@+
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Do Re Mi chel La Si Do* !
Dans <news:uPeKbTgtFHA.2592@TK2MSFTNGP09.phx.gbl>
tu nous disais :
Ce script, c'était juste pour taquiner un peu les lecteurs.
Non ? Je ne m'en doutais pas... ;-)
Quand même, je serais curieux de voir la même chose avec Monad...
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Do Re Mi chel La Si Do* ! Dans <news: tu nous disais :
Ce script, c'était juste pour taquiner un peu les lecteurs.
Non ? Je ne m'en doutais pas... ;-)
Quand même, je serais curieux de voir la même chose avec Monad...
@+
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Do Re Mi chel La Si Do
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en VBS...
@-salutations
Michel Claveau
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par
réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en
VBS...
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en VBS...
@-salutations
Michel Claveau
Do Re Mi chel La Si Do
Re-re-re !
Tiens, j'ai fait une version "semi"-Python. "Semi", car le script "wrappe" des commandes DOS :
import os,time while 1: lig=os.popen('netstat -ano |find "213.186.47.206:80"').readlines() if len(lig)>0: pid=lig[0].split(' ')[-1].lstrip().rstrip('n') vret=os.popen('taskkill /PID '+pid).read() time.sleep(2)
A noter que : - il doit être possible d'utiliser la même technique en VBS (mais ce sera + long). D'ailleurs, si quelqu'un pouvait m'indiquer la commande VBS qui permet d'appeler une commande DOS, et de récupérer l'affichage, merci à lui. - il existe, dans les librairies win32 de PyWin, les fonctions nécessaires, mais, aussi, légèrement plus long.
@-salutations -- Michel Claveau
Re-re-re !
Tiens, j'ai fait une version "semi"-Python. "Semi", car le script "wrappe"
des commandes DOS :
import os,time
while 1:
lig=os.popen('netstat -ano |find "213.186.47.206:80"').readlines()
if len(lig)>0:
pid=lig[0].split(' ')[-1].lstrip().rstrip('n')
vret=os.popen('taskkill /PID '+pid).read()
time.sleep(2)
A noter que :
- il doit être possible d'utiliser la même technique en VBS (mais ce
sera + long). D'ailleurs, si quelqu'un pouvait m'indiquer la commande VBS
qui permet d'appeler une commande DOS, et de récupérer l'affichage, merci à
lui.
- il existe, dans les librairies win32 de PyWin, les fonctions
nécessaires, mais, aussi, légèrement plus long.
Tiens, j'ai fait une version "semi"-Python. "Semi", car le script "wrappe" des commandes DOS :
import os,time while 1: lig=os.popen('netstat -ano |find "213.186.47.206:80"').readlines() if len(lig)>0: pid=lig[0].split(' ')[-1].lstrip().rstrip('n') vret=os.popen('taskkill /PID '+pid).read() time.sleep(2)
A noter que : - il doit être possible d'utiliser la même technique en VBS (mais ce sera + long). D'ailleurs, si quelqu'un pouvait m'indiquer la commande VBS qui permet d'appeler une commande DOS, et de récupérer l'affichage, merci à lui. - il existe, dans les librairies win32 de PyWin, les fonctions nécessaires, mais, aussi, légèrement plus long.
@-salutations -- Michel Claveau
Fred
Dans : news:eveP9%, Do Re Mi chel La Si Do disait :
Re-re-re !
Bonsoir Michel,
[...]
A noter que : - il doit être possible d'utiliser la même technique en VBS (mais ce sera + long). D'ailleurs, si quelqu'un pouvait m'indiquer la commande VBS qui permet d'appeler une commande DOS, et de récupérer l'affichage, merci à lui.
Regarde ici l'utilisation de stdOut avec la méthode Exec : http://msdn.microsoft.com/library/en-us/script56/html/wslrfStdOutProperty.asp
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:eveP9%23itFHA.3536@TK2MSFTNGP10.phx.gbl,
Do Re Mi chel La Si Do disait :
Re-re-re !
Bonsoir Michel,
[...]
A noter que :
- il doit être possible d'utiliser la même technique en VBS (mais
ce sera + long). D'ailleurs, si quelqu'un pouvait m'indiquer la
commande VBS qui permet d'appeler une commande DOS, et de récupérer
l'affichage, merci à lui.
Regarde ici l'utilisation de stdOut avec la méthode Exec :
http://msdn.microsoft.com/library/en-us/script56/html/wslrfStdOutProperty.asp
Dans : news:eveP9%, Do Re Mi chel La Si Do disait :
Re-re-re !
Bonsoir Michel,
[...]
A noter que : - il doit être possible d'utiliser la même technique en VBS (mais ce sera + long). D'ailleurs, si quelqu'un pouvait m'indiquer la commande VBS qui permet d'appeler une commande DOS, et de récupérer l'affichage, merci à lui.
Regarde ici l'utilisation de stdOut avec la méthode Exec : http://msdn.microsoft.com/library/en-us/script56/html/wslrfStdOutProperty.asp
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
~Jean-Marc~ [MVP]
Salutations *Fred* ! Dans <news:% tu nous disais :
Regarde ici l'utilisation de stdOut avec la méthode Exec : http://msdn.microsoft.com/library/en-us/script56/html/wslrfStdOutProperty.asp
Exact.
Ca fonctionne bien. J'ai fait sur cette base un script VBS qui me teste par ping le temps de réponse d'un serveur avec récupération du temps de réponse et modération à la baisse avec le ping précédent pour éviter les fausses alertes.
Tout ça avec un petit net send qui va bien en cas d'alarme...
:-)))
@+
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Fred* !
Dans <news:%23ubmJIjtFHA.3720@TK2MSFTNGP14.phx.gbl>
tu nous disais :
Regarde ici l'utilisation de stdOut avec la méthode Exec :
http://msdn.microsoft.com/library/en-us/script56/html/wslrfStdOutProperty.asp
Exact.
Ca fonctionne bien. J'ai fait sur cette base un script VBS qui
me teste par ping le temps de réponse d'un serveur avec
récupération du temps de réponse et modération à la baisse
avec le ping précédent pour éviter les fausses alertes.
Tout ça avec un petit net send qui va bien en cas d'alarme...
:-)))
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *Fred* ! Dans <news:% tu nous disais :
Regarde ici l'utilisation de stdOut avec la méthode Exec : http://msdn.microsoft.com/library/en-us/script56/html/wslrfStdOutProperty.asp
Exact.
Ca fonctionne bien. J'ai fait sur cette base un script VBS qui me teste par ping le temps de réponse d'un serveur avec récupération du temps de réponse et modération à la baisse avec le ping précédent pour éviter les fausses alertes.
Tout ça avec un petit net send qui va bien en cas d'alarme...
:-)))
@+
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Fred
Dans : news:%, ~Jean-Marc~ [MVP] disait :
Tout ça avec un petit net send qui va bien en cas d'alarme...
Oh ? Même pas un petit mail avec une photo du serveur en PJ ? ;-)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:%230VQSRjtFHA.464@TK2MSFTNGP15.phx.gbl,
~Jean-Marc~ [MVP] disait :
Tout ça avec un petit net send qui va bien en cas d'alarme...
Oh ? Même pas un petit mail avec une photo du serveur en PJ ? ;-)
Tout ça avec un petit net send qui va bien en cas d'alarme...
Oh ? Même pas un petit mail avec une photo du serveur en PJ ? ;-)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Jacques Barathon [MS]
"Do Re Mi chel La Si Do" wrote in message news:
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en VBS...
Sympa comme jeu.
Tu vas être content, il y a plein d'accolades. Pour ce qui d'être plus long qu'en VBS, pas sûr...
--- début script --- $ipdel = "213.186.47.206:80" for (;;) { $net = $(netstat -ano) foreach ($line in $net) {if ($line -match $ipdel) {$myline=$line}} if ($myline) { $proto,$localip,$remoteip,$status,$procid=$($myline.split()|foreach {if ($_.length) {$_}}) if ($remoteip -eq $ipdel -and $procid) {(gps -id $procid).kill()} } start-sleep 20 } --- fin script ---
On peut sans doute faire plus court. Je ne suis pas très fort en regexp mais je crois que cette technique pourrait avantageusement remplacer mon split() suivi du foreach visant à éliminer les espaces répétés. L'analyse du résultat de netstat peut sans doute être optimisée également.
Qui le fait en VBS et en Python, qu'on puisse comparer?
Jacques
"Do Re Mi chel La Si Do" <enleverlesO.OmcO@OmclaveauO.com> wrote in message
news:eZXVrhitFHA.2756@TK2MSFTNGP09.phx.gbl...
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par
réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en
VBS...
Sympa comme jeu.
Tu vas être content, il y a plein d'accolades. Pour ce qui d'être plus long
qu'en VBS, pas sûr...
--- début script ---
$ipdel = "213.186.47.206:80"
for (;;) {
$net = $(netstat -ano)
foreach ($line in $net) {if ($line -match $ipdel) {$myline=$line}}
if ($myline) {
$proto,$localip,$remoteip,$status,$procid=$($myline.split()|foreach
{if ($_.length) {$_}})
if ($remoteip -eq $ipdel -and $procid) {(gps -id $procid).kill()}
}
start-sleep 20
}
--- fin script ---
On peut sans doute faire plus court. Je ne suis pas très fort en regexp mais
je crois que cette technique pourrait avantageusement remplacer mon split()
suivi du foreach visant à éliminer les espaces répétés. L'analyse du
résultat de netstat peut sans doute être optimisée également.
Qui le fait en VBS et en Python, qu'on puisse comparer?
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en VBS...
Sympa comme jeu.
Tu vas être content, il y a plein d'accolades. Pour ce qui d'être plus long qu'en VBS, pas sûr...
--- début script --- $ipdel = "213.186.47.206:80" for (;;) { $net = $(netstat -ano) foreach ($line in $net) {if ($line -match $ipdel) {$myline=$line}} if ($myline) { $proto,$localip,$remoteip,$status,$procid=$($myline.split()|foreach {if ($_.length) {$_}}) if ($remoteip -eq $ipdel -and $procid) {(gps -id $procid).kill()} } start-sleep 20 } --- fin script ---
On peut sans doute faire plus court. Je ne suis pas très fort en regexp mais je crois que cette technique pourrait avantageusement remplacer mon split() suivi du foreach visant à éliminer les espaces répétés. L'analyse du résultat de netstat peut sans doute être optimisée également.
Qui le fait en VBS et en Python, qu'on puisse comparer?
sont en fait une seule et même ligne. Le retour à la ligne a été imposé arbitrairement par le format brut (brutal? :-)) du newsgroup. Si vous voulez tester ce script, reconstituez donc la ligne en collant les deux lignes bout à bout, uniquement séparées par un espace.
Jacques
"Jacques Barathon [MS]" wrote in message news:
"Do Re Mi chel La Si Do" wrote in message news:
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en VBS...
Sympa comme jeu.
Tu vas être content, il y a plein d'accolades. Pour ce qui d'être plus long qu'en VBS, pas sûr...
--- début script --- $ipdel = "213.186.47.206:80" for (;;) { $net = $(netstat -ano) foreach ($line in $net) {if ($line -match $ipdel) {$myline=$line}} if ($myline) { $proto,$localip,$remoteip,$status,$procid=$($myline.split()|foreach {if ($_.length) {$_}}) if ($remoteip -eq $ipdel -and $procid) {(gps -id $procid).kill()} } start-sleep 20 } --- fin script ---
On peut sans doute faire plus court. Je ne suis pas très fort en regexp mais je crois que cette technique pourrait avantageusement remplacer mon split() suivi du foreach visant à éliminer les espaces répétés. L'analyse du résultat de netstat peut sans doute être optimisée également.
Qui le fait en VBS et en Python, qu'on puisse comparer?
sont en fait une seule et même ligne. Le retour à la ligne a été imposé
arbitrairement par le format brut (brutal? :-)) du newsgroup. Si vous voulez
tester ce script, reconstituez donc la ligne en collant les deux lignes bout
à bout, uniquement séparées par un espace.
Jacques
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> wrote in message
news:Ob6BoPqtFHA.3528@TK2MSFTNGP15.phx.gbl...
"Do Re Mi chel La Si Do" <enleverlesO.OmcO@OmclaveauO.com> wrote in
message news:eZXVrhitFHA.2756@TK2MSFTNGP09.phx.gbl...
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par
réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en
VBS...
Sympa comme jeu.
Tu vas être content, il y a plein d'accolades. Pour ce qui d'être plus
long qu'en VBS, pas sûr...
--- début script ---
$ipdel = "213.186.47.206:80"
for (;;) {
$net = $(netstat -ano)
foreach ($line in $net) {if ($line -match $ipdel) {$myline=$line}}
if ($myline) {
$proto,$localip,$remoteip,$status,$procid=$($myline.split()|foreach
{if ($_.length) {$_}})
if ($remoteip -eq $ipdel -and $procid) {(gps -id $procid).kill()}
}
start-sleep 20
}
--- fin script ---
On peut sans doute faire plus court. Je ne suis pas très fort en regexp
mais je crois que cette technique pourrait avantageusement remplacer mon
split() suivi du foreach visant à éliminer les espaces répétés. L'analyse
du résultat de netstat peut sans doute être optimisée également.
Qui le fait en VBS et en Python, qu'on puisse comparer?
sont en fait une seule et même ligne. Le retour à la ligne a été imposé arbitrairement par le format brut (brutal? :-)) du newsgroup. Si vous voulez tester ce script, reconstituez donc la ligne en collant les deux lignes bout à bout, uniquement séparées par un espace.
Jacques
"Jacques Barathon [MS]" wrote in message news:
"Do Re Mi chel La Si Do" wrote in message news:
Re
Oui, c'est à voir. Je pense que, avec Monad, il va falloir commencer par réapprovisionner le stock d'accolades. Et, AMHA, ce sera plus long qu'en VBS...
Sympa comme jeu.
Tu vas être content, il y a plein d'accolades. Pour ce qui d'être plus long qu'en VBS, pas sûr...
--- début script --- $ipdel = "213.186.47.206:80" for (;;) { $net = $(netstat -ano) foreach ($line in $net) {if ($line -match $ipdel) {$myline=$line}} if ($myline) { $proto,$localip,$remoteip,$status,$procid=$($myline.split()|foreach {if ($_.length) {$_}}) if ($remoteip -eq $ipdel -and $procid) {(gps -id $procid).kill()} } start-sleep 20 } --- fin script ---
On peut sans doute faire plus court. Je ne suis pas très fort en regexp mais je crois que cette technique pourrait avantageusement remplacer mon split() suivi du foreach visant à éliminer les espaces répétés. L'analyse du résultat de netstat peut sans doute être optimisée également.
Qui le fait en VBS et en Python, qu'on puisse comparer?