Un test de 2004,mais qui nous donne une indication de la vulnérabilité des antivirus qui deviennent désuets avec le temps.
J'ai lu des test du magazine windows news,voici leurs classements. Kaspersky(produit Russe,Da Da.....) ,aucun virus ne lui échappe.Certains disent que cet antivirus se met a jour 12 hrs avant les autres ,car selon le fuseau horaire des Russes,ils auront déja eut un antidote avant l'Amérique. Panda titanium,est nez a nez avec Kaspersky. C'est 2 la font une très bonne job,surtout pour les virus de boot.C'est sûr que certaines cartes mères modernes incluent une protection contre les virus de boot,empêchant toute écriture sur le secteur de démarrage. Ensuite il y a Panda platinum Norton Antivirus 2004; les fichiers scr contaminés ne sont pas facilement détectés. Sophos 3.75 ; détecte 75% des virus. AVG 7.0 ; détecte difficilement les fichiers contaminés .com , les macro,les scripts,les exe.A part ça mettons qui va bien........mal??? Bit Defender standard edition 7 ; les anciens virus sont mal détectés. AntiVirus kit pro 11.0 ; pro que par le nom. McAfee 2004 ; en 9ième position,...huuuummm,le moteur d'analyse est peu performant et approuve a l'accasion l'ouverture de fichiers infectés. Toujours selon les test de windows news. F-Secure 2003 ; il est très lent et ça prend 512 mo de ram minimum,il est lent car même l'affichage des menus contextuels s'effectue apres un temps de pause!Et beaucoup de virus sont indétectés. Alors AVG c'est vraiment pourrit ,personnes ne devraient utiliser cette antivirus minable a mon humble avis !!!
En 2008,NOD32 ,AVAST,et kaspersky sont dure a battre,oubliez les AVG gratos.
dimanche 30 mars 2008
RJ-45 croisé ?
La difference entre un croisé et un straight est dans la maniere de placer les fils dans la prise RJ-45 (comme de telephone, mais plus gros) Le principe est que, pour un fils croisé, les fils d'envoie et de receptions doivent être inversé pour que les deux ordinateurs, quand branché directement, puissent recevoir ce que l'autre envoire. Alors on viens inverser les branches 1 et 2 (send) avec 3 et 6 (receive).
les quand il y a 2 ordi branché sur un hub ou sur un router c'est que le hub ou le router font la job de croiser par eux même, dans leur circuit, les connexions, c'est pour ça que vous avez besoin que de fils straight dans ces cas là.
Si on utilise pas de concentrateur (connexion de 2 stations) ou pour connecter 2 concentrateurs entre-eux, les fils doivent être de type câble croisés comme ci-dessous. Vous devez respecter les polarités et les paires doivent être appariées.
image
Tu croise seulement: Le 1 (selon sa couleur)deviens = le 3(a l'autre extrémité du fil) le 2 = le 6 le 3 = 1 le 6 = 2 Le reste des fils reste dans le même alignement. C'est ce qui fait qu'il y a transmission et réception des data. Selon le dessin,les 2 colonnes de chiffres représente les 2 extrémités du même fil.
Fabriquer un câble croisé(Dans une autres explication,ci-dessous) Pour fabriquer un câble RJ45 croisé, il suffit d'acheter câble droit, de le sectionner en son milieu, puis de reconnecter les fils selon le site ici en bas: http://www.commentcamarche.net/elec/rj45croise.php3 Et un autre site complet: http://www.ac-nancy-metz.fr/services/genres/cables.htm
les quand il y a 2 ordi branché sur un hub ou sur un router c'est que le hub ou le router font la job de croiser par eux même, dans leur circuit, les connexions, c'est pour ça que vous avez besoin que de fils straight dans ces cas là.
Si on utilise pas de concentrateur (connexion de 2 stations) ou pour connecter 2 concentrateurs entre-eux, les fils doivent être de type câble croisés comme ci-dessous. Vous devez respecter les polarités et les paires doivent être appariées.
image
Tu croise seulement: Le 1 (selon sa couleur)deviens = le 3(a l'autre extrémité du fil) le 2 = le 6 le 3 = 1 le 6 = 2 Le reste des fils reste dans le même alignement. C'est ce qui fait qu'il y a transmission et réception des data. Selon le dessin,les 2 colonnes de chiffres représente les 2 extrémités du même fil.
Fabriquer un câble croisé(Dans une autres explication,ci-dessous) Pour fabriquer un câble RJ45 croisé, il suffit d'acheter câble droit, de le sectionner en son milieu, puis de reconnecter les fils selon le site ici en bas: http://www.commentcamarche.net/elec/rj45croise.php3 Et un autre site complet: http://www.ac-nancy-metz.fr/services/genres/cables.htm
samedi 29 mars 2008
Autopsie D'un "Arnaque sur les cartes de crédits", en 2004
Maintenant que la poussière est tombée;Ont peut plus en parler maintenant!
Ne jamais divulgué des infos par téléphone,a n'importe qui ! Cette info est a titre d'information pour éviter les arnaques. "Arnaque sur les cartes de crédits":Tel était le titre de l'article dernièrement dans le journal de mtl de cette semaine,ont parle de 146,310 cartes utilisées frauduleusement pour un montant de 139 Millions$.La tactique des Black hats consistait a se faire passer pour un employé du département de la fraude de Master card et annonce a sa victime que des achats anormaux sur sa carte se sont enregistrés.Ils demande a leurs victimes les 4 derniers chiffres a l'endos de leurs cartes.Ça permet aux fraudeurs tout simplement de pouvoir faire des prélèvements fantomes sur leurs cartes. Julie Brassard de Master cards Canada a expliqué que sa revenait a donner votre signature aux fraudeurs,car les 4 derniers chiffres sont un code de sécurité,donc qui permet de débarrer la carte ou d'obtenir le numéro de celle-ci . **********************************************************8 Mais ,depuis un an déja il y a eut pire,et ceci est répertorier sur le site de l'Université de Cambridge : http://www.cl.cam.ac.uk/TechReports/ Decimalisation table attacks for PIN cracking par Mike Bond, Piotr Zielinski,fichier en PDF (0.2 MB) Ça dit que plusieurs personnes se sont fait vidées partiellement leurs comptes de cartes de crédits ou débits(ATM). Les Banques ont rejettées la faute au laisser-aller des utilisateurs et dit que même si un criminel réussissait a copier le contenu de la bande magnétique d'la carte par un POS piraté sans avoir le code secret ont ne peut utiliser la carte de façon frauduleuse. Ces victimes en Angleterre, sont aller en justice contre Diner/Citybank pour démontrer que ce n'est pas impossible d'obtenir le code secret d'une carte ATM .Ils ont demander aux département de sécurité informatique et de cryptographie du "Computer Laboratory de l'University of Cambridge", de pondre un rapport sur la vulnérabilité du code pin secret d'une carte de crédit et ce en seulement 10 essais. C'est que la technologie utilisée était un système IBM 3624 implémenté par la Citybank,datant de 1980.Le problême est la!!! Ses vulnérabilités sont mises en évidence par 3 algorithmes dont le meilleur est capable de trouver un code secret au bout d'une dizaines d'essais ,face aux 5000 essais par attaque a force brute. Le code secret ,appelé aussi PIN , des cartes ATM et de crédits est de 4 chiffres. Les caractères numériques prévus sont de 10 chiffres (0 a 9)pour 10 exposant 4 : soit 10,000 combinaisons pour en avoir une de valide.Il faut detenir la moitié des combinaisons c.a.d. 5000 pour avoir 50% de probabilité de le trouver.En exécutant l'encrypted_pin_verify ,Mike Bond Étudiant de Cambridge , exploita la vulnérabilité des 4 premier chiffres cryptés d'une carte de crédit.
Ex. :
Pour un numéro fictif de carte 4556 2385 7753 2239
il sera crypté avec l'algorithme DES en 3F7C 2201 00CA 8AB3
si les 4 premier chiffres cryptés sont: 3F7C
Selon le tableau de conversion décimale: 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F 0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5
le numéro 3F7C peut être aussi valable que le le numéro 3F72 ou le 3572
Donc,en envoyant un code PIN de valeur (****censuré)au HSM (Hardware security module),en seulement 10 essais il a pu trouver si les 10 chiffres décimaux a l'intérieur du code PIN de la carte sont présents. La Citybank s'est trouvée prise au dépourvu et réclama a la haute cours anglaise que les documents de M.Bond de Cambridge ne soient pas divulgués.Et que son système inadapté remontant au années 1980 soit révisé tout simplement. http://www.ftp.cl.cam.ac.uk/ftp/users/r ... _order.pdf La haute cours n'a pas pensé aux citoyens anglais qui confient leurs épargnes a la Citybank?Puisque les criminels connaissent déja probablement leur vulnérabilité,ceux qui resteraient dans l'obscurité du problême seraient seulement les citoyens fraudés incapables de démontrer devant une cours comment leur code PIN jalousement gardé a été utilisé. Source: H-magazine Solution: Devener un Human Firewall,en attendant que les systèmes de sécurité des Cartes Bancaire deviennent plus sécure !
Oui,et qui qui payera les $ 139 Millions.......C'est nous $$
La collecte d'info personnel va plus loin dans le cas des Taupes de la SAAQ,Raymond Turgeon écope cinq ans de pénitencier alors que sa complice, Ginette Martineau, est condamnée à trois ans de réclusion. Ils ont plaidé coupable à 25 accusations d'utilisation frauduleuse de renseignements confidentiels, alors qu'ils étaient à l'emploi d'un mandataire de la SAAQ dans l'est de Montréal. Et aussi ,le vol d'ordinateurs de l'Agence des douanes et du revenu du Canada (ADRC). Un des ordinateurs contenait des renseignements qui ont trait à des particuliers et des entreprises du domaine de la construction; il s'agit de noms, d'adresses et de numéros d'entreprise d'entrepreneurs et de sous-traitants. Certains dossiers contenaient aussi des numéros d'assurance sociale de particuliers. Et aux USA ;Ainsi, on apprend qu'au moins 595 ordinateurs portables et de bureau, appartenant au Navy's Pacific Command à Hawaï étaient potentiellement perdus ou compromis. Le rapport fait état de l'inaptitude du service à comptabiliser des centaines d'ordinateurs, dont certains contiennent des documents classifiés. Ainsi, on apprend qu'au moins 595 ordinateurs portables et de bureau, appartenant au Navy's Pacific Command à Hawaï étaient potentiellement perdus ou compromis. Le rapport fait état de l'inaptitude du service à comptabiliser des centaines d'ordinateurs, dont certains contiennent des documents classifiés. Deux ordinateurs portables, contenant des informations «top secret» sont disparus d'un site compartimenté d'informations classifiées (Sensitive Compartmented Information Facility) opéré par le U.S. Central Command à la base aérienne MacDill, à Tampa, en Floride. Ironiquement, la seule raison pour laquelle on a découvert la disparition de ces deux ordinateurs est que le secrétaire à la défense Donald Rumsfeld a ordonné aux enquêteurs de découvrir comment il y avait eu fuite de renseignements concernant des plans d'invasion de l'Iraq! le ministère de la justice à reconnu ne pas pouvoir retracer 400 ordinateurs portables et 775 armes appartenant au FBI et au Drug Enforcement Agency. De plus, il était alors impossible d'établir le niveau de classification de 317 ordinateurs appartenant au FBI. Comme quoi le gouvernement américain semble plus en mesure de déterminer les équipements que possède l'Iraq que ses propres forces sur le territoire américain…
Bientôt,les cartes de débits et crédits avec puces.................Wow,j'espère que ça va être plus sécure, pour nous!
Ne jamais divulgué des infos par téléphone,a n'importe qui ! Cette info est a titre d'information pour éviter les arnaques. "Arnaque sur les cartes de crédits":Tel était le titre de l'article dernièrement dans le journal de mtl de cette semaine,ont parle de 146,310 cartes utilisées frauduleusement pour un montant de 139 Millions$.La tactique des Black hats consistait a se faire passer pour un employé du département de la fraude de Master card et annonce a sa victime que des achats anormaux sur sa carte se sont enregistrés.Ils demande a leurs victimes les 4 derniers chiffres a l'endos de leurs cartes.Ça permet aux fraudeurs tout simplement de pouvoir faire des prélèvements fantomes sur leurs cartes. Julie Brassard de Master cards Canada a expliqué que sa revenait a donner votre signature aux fraudeurs,car les 4 derniers chiffres sont un code de sécurité,donc qui permet de débarrer la carte ou d'obtenir le numéro de celle-ci . **********************************************************8 Mais ,depuis un an déja il y a eut pire,et ceci est répertorier sur le site de l'Université de Cambridge : http://www.cl.cam.ac.uk/TechReports/ Decimalisation table attacks for PIN cracking par Mike Bond, Piotr Zielinski,fichier en PDF (0.2 MB) Ça dit que plusieurs personnes se sont fait vidées partiellement leurs comptes de cartes de crédits ou débits(ATM). Les Banques ont rejettées la faute au laisser-aller des utilisateurs et dit que même si un criminel réussissait a copier le contenu de la bande magnétique d'la carte par un POS piraté sans avoir le code secret ont ne peut utiliser la carte de façon frauduleuse. Ces victimes en Angleterre, sont aller en justice contre Diner/Citybank pour démontrer que ce n'est pas impossible d'obtenir le code secret d'une carte ATM .Ils ont demander aux département de sécurité informatique et de cryptographie du "Computer Laboratory de l'University of Cambridge", de pondre un rapport sur la vulnérabilité du code pin secret d'une carte de crédit et ce en seulement 10 essais. C'est que la technologie utilisée était un système IBM 3624 implémenté par la Citybank,datant de 1980.Le problême est la!!! Ses vulnérabilités sont mises en évidence par 3 algorithmes dont le meilleur est capable de trouver un code secret au bout d'une dizaines d'essais ,face aux 5000 essais par attaque a force brute. Le code secret ,appelé aussi PIN , des cartes ATM et de crédits est de 4 chiffres. Les caractères numériques prévus sont de 10 chiffres (0 a 9)pour 10 exposant 4 : soit 10,000 combinaisons pour en avoir une de valide.Il faut detenir la moitié des combinaisons c.a.d. 5000 pour avoir 50% de probabilité de le trouver.En exécutant l'encrypted_pin_verify ,Mike Bond Étudiant de Cambridge , exploita la vulnérabilité des 4 premier chiffres cryptés d'une carte de crédit.
Ex. :
Pour un numéro fictif de carte 4556 2385 7753 2239
il sera crypté avec l'algorithme DES en 3F7C 2201 00CA 8AB3
si les 4 premier chiffres cryptés sont: 3F7C
Selon le tableau de conversion décimale: 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F 0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5
le numéro 3F7C peut être aussi valable que le le numéro 3F72 ou le 3572
Donc,en envoyant un code PIN de valeur (****censuré)au HSM (Hardware security module),en seulement 10 essais il a pu trouver si les 10 chiffres décimaux a l'intérieur du code PIN de la carte sont présents. La Citybank s'est trouvée prise au dépourvu et réclama a la haute cours anglaise que les documents de M.Bond de Cambridge ne soient pas divulgués.Et que son système inadapté remontant au années 1980 soit révisé tout simplement. http://www.ftp.cl.cam.ac.uk/ftp/users/r ... _order.pdf La haute cours n'a pas pensé aux citoyens anglais qui confient leurs épargnes a la Citybank?Puisque les criminels connaissent déja probablement leur vulnérabilité,ceux qui resteraient dans l'obscurité du problême seraient seulement les citoyens fraudés incapables de démontrer devant une cours comment leur code PIN jalousement gardé a été utilisé. Source: H-magazine Solution: Devener un Human Firewall,en attendant que les systèmes de sécurité des Cartes Bancaire deviennent plus sécure !
Oui,et qui qui payera les $ 139 Millions.......C'est nous $$
La collecte d'info personnel va plus loin dans le cas des Taupes de la SAAQ,Raymond Turgeon écope cinq ans de pénitencier alors que sa complice, Ginette Martineau, est condamnée à trois ans de réclusion. Ils ont plaidé coupable à 25 accusations d'utilisation frauduleuse de renseignements confidentiels, alors qu'ils étaient à l'emploi d'un mandataire de la SAAQ dans l'est de Montréal. Et aussi ,le vol d'ordinateurs de l'Agence des douanes et du revenu du Canada (ADRC). Un des ordinateurs contenait des renseignements qui ont trait à des particuliers et des entreprises du domaine de la construction; il s'agit de noms, d'adresses et de numéros d'entreprise d'entrepreneurs et de sous-traitants. Certains dossiers contenaient aussi des numéros d'assurance sociale de particuliers. Et aux USA ;Ainsi, on apprend qu'au moins 595 ordinateurs portables et de bureau, appartenant au Navy's Pacific Command à Hawaï étaient potentiellement perdus ou compromis. Le rapport fait état de l'inaptitude du service à comptabiliser des centaines d'ordinateurs, dont certains contiennent des documents classifiés. Ainsi, on apprend qu'au moins 595 ordinateurs portables et de bureau, appartenant au Navy's Pacific Command à Hawaï étaient potentiellement perdus ou compromis. Le rapport fait état de l'inaptitude du service à comptabiliser des centaines d'ordinateurs, dont certains contiennent des documents classifiés. Deux ordinateurs portables, contenant des informations «top secret» sont disparus d'un site compartimenté d'informations classifiées (Sensitive Compartmented Information Facility) opéré par le U.S. Central Command à la base aérienne MacDill, à Tampa, en Floride. Ironiquement, la seule raison pour laquelle on a découvert la disparition de ces deux ordinateurs est que le secrétaire à la défense Donald Rumsfeld a ordonné aux enquêteurs de découvrir comment il y avait eu fuite de renseignements concernant des plans d'invasion de l'Iraq! le ministère de la justice à reconnu ne pas pouvoir retracer 400 ordinateurs portables et 775 armes appartenant au FBI et au Drug Enforcement Agency. De plus, il était alors impossible d'établir le niveau de classification de 317 ordinateurs appartenant au FBI. Comme quoi le gouvernement américain semble plus en mesure de déterminer les équipements que possède l'Iraq que ses propres forces sur le territoire américain…
Bientôt,les cartes de débits et crédits avec puces.................Wow,j'espère que ça va être plus sécure, pour nous!
Création de batch file
Quelques informations indispensablesMalheureusement, la majorité des sources intéressantes qui pourront vous aider à approfondir les techniques de la programmation Batch sont souvent en anglais..."Xset" est un outil indispensable pour appendre à écrire des fichiers Batch sous toutes les versions de Windows. De plus, Marc Stern propose de nombreux didacticiels à partir de son site Internet : http://xset.tripod.com/.Jerold Schulman qui m'a autorisé à citer quelques-uns de ces scripts anime un site Internet qui propose d'innombrables pages sur la programmation Batch : http://www.jsiinc.com/. C'est, par ailleurs, un des meilleurs sites traitant des systèmes NT de Windows.D'excellents scripts sont également visibles à partir de cette adresse : www.uwasa.fi/~ts/http/http2.html#batch. Timo Salmi propose une multitude de solutions permettant de résoudre les problèmes les plus courants quand on commence à se lancer dans la programmation Batch.Ritchie Lawrence met en lignes de nombreux modèles de scripts et propose quelques utilitaires fort bien faits qui vous permettront de réaliser des choses étonnantes en mode Ms-Dos ou en Invite de commandes. L'adresse de son site est la suivante : http://www.commandline.co.uk/index.html.Enfin, une source inépuisable de trouvailles sont proposées à partir de ce forum recouvrant une multitude de thématiques dont Ms-Dos et l'Invite de commandes : http://www.experts-exchange.com/Operating_Systems/MSDOS.
La plupart des exemples de scripts expliqués dans ce chapitre s'inspirent directement ou indirectement des techniques présentées par ces différents auteurs.
Créer un fichier Batch
Le terme "Batch" désigne un fichier contenant une suite de commandes qui seront traitées automatiquement. Nous appelons aussi cela un "traitement par lot". Afin de créer votre premier fichier Batch suivez cette procédure :1) Ouvrez un éditeur de texte : le Bloc-notes par exemple.2) Inscrivez vos lignes de commandes.3) Enregistrez votre fichier texte.4) Cliquez sur le nom du fichier puis appuyez sur la touche F2.Vous serez en mode "Édition".5) Renommez le fichier en changeant l'extension .txt en .bat.À la question : "Voulez-vous vraiment renommer le fichier", répondez par Oui.Attention de désactiver au préalable la case "Masquer les extensions de fichiers dont le type est connu" dans les options avancés de l'Explorateur Windows.
Quelle différence entre l'extension .cmd .btm et .bat ?Un fichier .cmd ou .btm ne sera pas reconnu en tant que tel par Windows 9X. Nous pouvons voir cela comme une sorte de garde-fou si tel fichier de commande est parfaitement incompatible avec ces versions de Windows. Par ailleurs, le processus est légèrement différent :Dans le cas d'un fichier .bat ou .cmd, chaque ligne du fichier est exécutée individuellement et le fichier fermé puis ouvert à chaque lecture d'une nouvelle commande. Dans le cas d'un fichier .btm, le fichier n'est ouvert qu'une fois, puis lu en mémoire et enfin fermé. C'est donc a priori le mode le plus rapide. surtout si ce sont des commandes internes qui sont exécutées.
Savoir se servir de la commande EchoDans un nouveau fichier Batch, copiez ce contenu :
echo La commande Echo est active
@echo
date /t
echo off
date /t
@echo off
date /t
L'utilisation de l'arobase permet de biffer le statut de la commande "Echo".Par ailleurs, la commande "Echo off" évite l'affichage des commandes contenues dans le script.
Se servir des parenthèses dans les fichiers de scriptsSi vous souhaitez rediriger le résultat de différentes commandes dans un même fichier texte. Par exemple :
dir /s /b *.doc >> résultat.txt
dir /b *.dot >> résultat.txt
etc.
Il est dans ce cas plus simple de saisir :
(
dir /s /b *.doc
dir /s /b *.dot
) >> résultat.txt
Cela vous évitera de spécifier plusieurs fois le même fichier de sortie. Par ailleurs, c'est une manière de créer de toutes pièces un fichier texte :
@echo off
(
@echo Bonjour,
@echo Tout le monde !
) > test.txt
Dans ce dernier cas, les commandes sont regroupées.Faire des remarquesLa commande "Rem" vous permet d'insérer des commentaires ou de désactiver temporairement des commandes inclues dans votre fichier batch. Ce n'est pas tout à fait vrai. La commande rem echo quelque chose > Sortie.txt ne fait qu'envoyer rien au fichier Sortie.txt. La commande est donc exécutée mais en mode "désactivé". Une sorte de coup à blanc... Pour les amoureux de la performance il est donc plus judicieux d'utiliser :: plutôt que Rem. Les deux points étant considéré comme l'indication d'une étiquette la commande ne sera pas exécutée. À titre de test saisissez tour à tour ces deux commandes :
rem echo A
:: echo B
La seconde commande provoque un retour chariot et non un saut de ligne.Dans un fichier Config.sys il est possible de désactiver une commande en utilisant un point virgule : ;connexion=c:\dos\ramdrive.sys
Afficher le code de sortieÀ chaque fois que vous saisissez une commande, cette dernière produit un code de sortie qui sont principalement les suivants :1 : la commande a renvoyé une erreur0 : la commande n'a pas renvoyé d'erreur.C'est la variable %Errorlevel% qui est chargée de suivre les fluctuations de la réussite ou non des commandes exécutées.Information : La commande "Set" teste les "Errorlevel" en partant de la plus petite valeur puis en procédant par incrémentation de 1. La commande "Goto" démarre de la plus grande valeur puis procède par décrémentation de 1.
Se servir des étiquettesLa commande "Goto" vous permet d'atteindre un point précis de votre script. La commande spécifiée doit porter un titre que nous appelons une étiquette. Cette ligne de titre commence obligatoirement par deux points. Nous sommes obligés d'anticiper quelque peu sur l'explication des conditions car c'est une des utilisations privilégiées des étiquettes. Dans un nouveau fichier Batch copiez ce contenu :
@echo off
dir *.doc
if not errorlevel 1 goto Fin else if goto Avertissement
:Avertissement
echo Aucun fichier .doc !
:Fin
La variable %Errolevel% nous permet de saisir si la commande "Dir" a renvoyé une valeur 1 ("Échec") ou 0 ("Opération réussie"). Si au moins un fichier .doc est trouvé nous allons directement à l'étiquette :Fin. Ou, plus exactement si la sortie d'erreur n'est pas 1 ("Échec"), alors il faut se rendre à l'étiquette :Fin. Sinon (else if) nous nous rendrons à l'étiquette :Avertissement. Si nous rajoutons une commande à la suite de l'étiquette :Fin, cette dernière sera automatiquement exécutée même si la condition n'est pas remplie. Afin d'éviter cela, il nous faut nous servir d'une étiquette spéciale : goto:eof. Notre fichier script devient alors :
@echo off
dir *.doc
if not errorlevel 1 goto Fin else if goto Avertissement
:Avertissement
echo Aucun fichier .doc ! & goto:eof
:Fin
echo Processus fini !
Dans ce dernier cas, la commande goto:eof nous permet d'effectuer une césure dans le script. Cela revient à dire : "Affiche le message 'Aucun fichier .doc !' puis ne fait plus rien". En termes savants, puisque nous ne définissons pas d'étiquette, nous transférons le contrôle à la fin du script en cours.
http://www.hotline-pc.org/batch.htm
La plupart des exemples de scripts expliqués dans ce chapitre s'inspirent directement ou indirectement des techniques présentées par ces différents auteurs.
Créer un fichier Batch
Le terme "Batch" désigne un fichier contenant une suite de commandes qui seront traitées automatiquement. Nous appelons aussi cela un "traitement par lot". Afin de créer votre premier fichier Batch suivez cette procédure :1) Ouvrez un éditeur de texte : le Bloc-notes par exemple.2) Inscrivez vos lignes de commandes.3) Enregistrez votre fichier texte.4) Cliquez sur le nom du fichier puis appuyez sur la touche F2.Vous serez en mode "Édition".5) Renommez le fichier en changeant l'extension .txt en .bat.À la question : "Voulez-vous vraiment renommer le fichier", répondez par Oui.Attention de désactiver au préalable la case "Masquer les extensions de fichiers dont le type est connu" dans les options avancés de l'Explorateur Windows.
Quelle différence entre l'extension .cmd .btm et .bat ?Un fichier .cmd ou .btm ne sera pas reconnu en tant que tel par Windows 9X. Nous pouvons voir cela comme une sorte de garde-fou si tel fichier de commande est parfaitement incompatible avec ces versions de Windows. Par ailleurs, le processus est légèrement différent :Dans le cas d'un fichier .bat ou .cmd, chaque ligne du fichier est exécutée individuellement et le fichier fermé puis ouvert à chaque lecture d'une nouvelle commande. Dans le cas d'un fichier .btm, le fichier n'est ouvert qu'une fois, puis lu en mémoire et enfin fermé. C'est donc a priori le mode le plus rapide. surtout si ce sont des commandes internes qui sont exécutées.
Savoir se servir de la commande EchoDans un nouveau fichier Batch, copiez ce contenu :
echo La commande Echo est active
@echo
date /t
echo off
date /t
@echo off
date /t
L'utilisation de l'arobase permet de biffer le statut de la commande "Echo".Par ailleurs, la commande "Echo off" évite l'affichage des commandes contenues dans le script.
Se servir des parenthèses dans les fichiers de scriptsSi vous souhaitez rediriger le résultat de différentes commandes dans un même fichier texte. Par exemple :
dir /s /b *.doc >> résultat.txt
dir /b *.dot >> résultat.txt
etc.
Il est dans ce cas plus simple de saisir :
(
dir /s /b *.doc
dir /s /b *.dot
) >> résultat.txt
Cela vous évitera de spécifier plusieurs fois le même fichier de sortie. Par ailleurs, c'est une manière de créer de toutes pièces un fichier texte :
@echo off
(
@echo Bonjour,
@echo Tout le monde !
) > test.txt
Dans ce dernier cas, les commandes sont regroupées.Faire des remarquesLa commande "Rem" vous permet d'insérer des commentaires ou de désactiver temporairement des commandes inclues dans votre fichier batch. Ce n'est pas tout à fait vrai. La commande rem echo quelque chose > Sortie.txt ne fait qu'envoyer rien au fichier Sortie.txt. La commande est donc exécutée mais en mode "désactivé". Une sorte de coup à blanc... Pour les amoureux de la performance il est donc plus judicieux d'utiliser :: plutôt que Rem. Les deux points étant considéré comme l'indication d'une étiquette la commande ne sera pas exécutée. À titre de test saisissez tour à tour ces deux commandes :
rem echo A
:: echo B
La seconde commande provoque un retour chariot et non un saut de ligne.Dans un fichier Config.sys il est possible de désactiver une commande en utilisant un point virgule : ;connexion=c:\dos\ramdrive.sys
Afficher le code de sortieÀ chaque fois que vous saisissez une commande, cette dernière produit un code de sortie qui sont principalement les suivants :1 : la commande a renvoyé une erreur0 : la commande n'a pas renvoyé d'erreur.C'est la variable %Errorlevel% qui est chargée de suivre les fluctuations de la réussite ou non des commandes exécutées.Information : La commande "Set" teste les "Errorlevel" en partant de la plus petite valeur puis en procédant par incrémentation de 1. La commande "Goto" démarre de la plus grande valeur puis procède par décrémentation de 1.
Se servir des étiquettesLa commande "Goto" vous permet d'atteindre un point précis de votre script. La commande spécifiée doit porter un titre que nous appelons une étiquette. Cette ligne de titre commence obligatoirement par deux points. Nous sommes obligés d'anticiper quelque peu sur l'explication des conditions car c'est une des utilisations privilégiées des étiquettes. Dans un nouveau fichier Batch copiez ce contenu :
@echo off
dir *.doc
if not errorlevel 1 goto Fin else if goto Avertissement
:Avertissement
echo Aucun fichier .doc !
:Fin
La variable %Errolevel% nous permet de saisir si la commande "Dir" a renvoyé une valeur 1 ("Échec") ou 0 ("Opération réussie"). Si au moins un fichier .doc est trouvé nous allons directement à l'étiquette :Fin. Ou, plus exactement si la sortie d'erreur n'est pas 1 ("Échec"), alors il faut se rendre à l'étiquette :Fin. Sinon (else if) nous nous rendrons à l'étiquette :Avertissement. Si nous rajoutons une commande à la suite de l'étiquette :Fin, cette dernière sera automatiquement exécutée même si la condition n'est pas remplie. Afin d'éviter cela, il nous faut nous servir d'une étiquette spéciale : goto:eof. Notre fichier script devient alors :
@echo off
dir *.doc
if not errorlevel 1 goto Fin else if goto Avertissement
:Avertissement
echo Aucun fichier .doc ! & goto:eof
:Fin
echo Processus fini !
Dans ce dernier cas, la commande goto:eof nous permet d'effectuer une césure dans le script. Cela revient à dire : "Affiche le message 'Aucun fichier .doc !' puis ne fait plus rien". En termes savants, puisque nous ne définissons pas d'étiquette, nous transférons le contrôle à la fin du script en cours.
http://www.hotline-pc.org/batch.htm
Les BATCHS Files
Les commandes sont ici.
En informatique, un traitement par lots (batch processing en anglais)
Un exemple pour vider un dossier temp de win XP-2000-NT-98SE-95 ...
@echo on
cd %homedrive%%homepath%
rd /s/q locals~1\tempor~1
rd /s/q locals~1\temp\tempor~1
rd /s/q cookies
rd /s/q temp\cookies
rd /s/q locals~1\history
rd /s/q locals~1\temp\history
rd /s/q recent
md recent
rd /s/q locals~1\temp
md locals~1\temp
Le sigle % = (les caractères % permettent de spécifier à l'invite de commandes qu'il s'agit d'une variable d'environnement dont nous voulons obtenir la valeur). La commande RD (ou RMDIR)pour Remove Directory avec l’option /S va supprimer tous les répertoires et fichiers du répertoire spécifié en plus du répertoire lui-même. L’option /Q (pour Quiet) active le mode silencieux, c'est-à-dire qu’il n’y a pas de confirmation demandée lors de la suppression. Et , HOMEDRIVE : disque local primaire (partition système). HOMEPATH : dossier par défaut pour les utilisateurs. Le reste c'est les dossiers de windows xp.
Cmd.exe
Sur le système d'exploitation Windows NT, un fichier batch est un fichier texte contenant une série de commandes (Voir interpréteur de commandes). Quand le fichier batch est lancé, de la même manière (d'un point de vue utilisateur) qu'un exécutable ordinaire, les commandes du fichier sont exécutées dans l'ordre. Un fichier batch est l'équivalent d'un script shell sous Unix ou cygwin.
Les fichiers batch du Windows NT sont les fichiers dotés de l’extension .BAT ou .CMD. Leur syntaxe est héritée de COMMAND.COM de MS-DOS, mais est nettement plus puissante.
Le comportement par défaut de cmd.exe est d'afficher chaque commande sur la sortie standard avant de l'exécuter. C'est souvent non désiré, la commande ECHO OFF est souvent donnée au début d'un fichier batch. Cmd.exe interprète également le @, préfixé à la commande, pour empêcher une seule commande de s'afficher. De ce fait, beaucoup de fichiers batch commencent par la ligne @ECHO OFF.
Histoire et évolutions
La programmation des fichiers scripts sous les systèmes d'exploitation Microsoft a beaucoup évolué. Au départ, simple suites de commande sous les premières versions de MS-DOS, il permet un peu de programmation dans les versions livrées avec Windows 2000 et Windows XP.
Il existe deux modes d'exécution :
Un mode interactif
Un mode exécution de scripts
Dans le mode interactif, l'utilisateur tape les commandes qui sont exécutées immédiatement. Le mode script exécute une séquence de commandes définies dans un fichier batch.
À l'origine, le système MS-DOS fournit un interpréteur : command.com. Les programmes batch pour MS-DOS sont composés d'un ensemble relativement simple d'ensemble de commandes interprétées directement par command.com (commande interne) et des utilitaires qui existent en tant qu'exécutables séparés (commande externe).
Il existe des interpréteurs de commande plus évolués fournis par d'autres sociétés. Le plus connus est l'interpréteur 4DOS (ou 4NT sous Windows NT) de la société JP Soft.
Le système d'exploitation OS/2 comprend également un interpréteur de commande cmd.exe apparenté à celui de Windows NT.
Microsoft semble avoir abandonné les améliorations des fichiers batch pour se concentrer sur les scripts en VBScript ou Jscript permettant une programmation plus structurée et cohérentes avec les langages de macros de la suite Microsoft Office.
Commandes internes
On peut obtenir de l'aide sur toutes les commandes en tapant leur nom suivi de /? :
C:\>echo /?
Affiche des messages ou active/désactive l'affichage des commandes.
ECHO [ON OFF]
ECHO [message]
ECHO sans paramètres affiche l'état en cours de la commande.
* ECHO
Affiche une chaîne sur la sortie. Permet également d'autoriser ou d'interdire l'affichage des commandes sur la sortie standard par les commandes ECHO ON et ECHO OFF
* REM ou ::
Commentaire.
* SET
Sert à modifier des variables d'environnement. Équivalent de set et export sous bash
* FOR
Sorte de for. On peut grouper plusieurs commandes à l'aide de parenthèses. Par exemple :
for %x in (*.c) do (
echo copie de %x
copy %x c:\sos\
)
Cette commande a de nombreuses options la rendant beaucoup plus puissante que sa version MS-DOS.
* SHIFT
Décale les arguments. Équivalent du shift de bash.
* GOTO
Dirige cmd.exe sur une ligne étiquetée dans le programme de commandes. Les étiquettes sont sur un lignes précédées du caractère ":". Hérité des premières versions de COMMAND.COM qui ne permettaient pas beaucoup de structuration.
* IF
Le if connu de tous les programmeurs.
* ERRORLEVEL
Utilisé avec IF, teste si la valeur de retour d'un programme atteint ou dépasse une erreur donnée. Equivalent du $? de bash. Par exemple:
IF ERRORLEVEL 6 GOTO label
Continuera l'exécution à l'étiquette label si le dernier programme exécuté a retourné une valeur supérieure ou égale à 6.
* CALL
Appelle un autre programme batch. En effet l'appel simple à un fichier batch provoquera l'enchaînement du fichier sans retour possible vers le fichier appelant.
Permet également d'appeler une fonction (matérialisée par un label (:) et un retour au programme principal par GOTO :EOF)
Exemple d'appel de fonction avec un argument :
@ECHO OFF
ECHO "Avant fonction1"
CALL:fonction1 arg1
ECHO "Apres fonction1"
REM Sortie du programme
GOTO:EOF
:fonction1
ECHO "Fonction1 avec argument: %1"
REM Sortie de la fonction
GOTO:EOF
* START
Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné. Par exemple
start netscape
permet de démarrer la commande "netscape" dans une nouvelle fenêtre sans attendre la fin de son exécution. Il existe de nombreuses options.
Exemple
:: Start Vim on a copy of the tutor file.
@echo off
:: Usage: vimtutor [-console] [xx]
::
:: -console means gvim will not be used
:: xx is a language code like "es" or "nl".
:: When an xx argument is given, it tries loading that tutor.
:: When this fails or no xx argument was given, it tries using 'v:lang'
:: When that also fails, it uses the English version.
:: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
FOR %%d in (. %TMP% %TEMP%) DO IF EXIST %%d
ul SET TUTORCOPY=%%d\$tutor$
SET xx=%1
IF NOT .%1==.-console GOTO use_gui
SHIFT
SET xx=%1
GOTO use_vim
:use_gui
:: Try making a copy of tutor with gvim. If gvim cannot be found, try using
:: vim instead. If vim cannot be found, alert user to check environment and
:: installation.
:: The script tutor.vim tells Vim which file to copy.
:: For Windows NT "start" works a bit differently.
IF .%OS%==.Windows_NT GOTO ntaction
start /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start /w gvim -u NONE -c "set nocp" %TUTORCOPY%
Ref
En informatique, un traitement par lots (batch processing en anglais)
Un exemple pour vider un dossier temp de win XP-2000-NT-98SE-95 ...
@echo on
cd %homedrive%%homepath%
rd /s/q locals~1\tempor~1
rd /s/q locals~1\temp\tempor~1
rd /s/q cookies
rd /s/q temp\cookies
rd /s/q locals~1\history
rd /s/q locals~1\temp\history
rd /s/q recent
md recent
rd /s/q locals~1\temp
md locals~1\temp
Le sigle % = (les caractères % permettent de spécifier à l'invite de commandes qu'il s'agit d'une variable d'environnement dont nous voulons obtenir la valeur). La commande RD (ou RMDIR)pour Remove Directory avec l’option /S va supprimer tous les répertoires et fichiers du répertoire spécifié en plus du répertoire lui-même. L’option /Q (pour Quiet) active le mode silencieux, c'est-à-dire qu’il n’y a pas de confirmation demandée lors de la suppression. Et , HOMEDRIVE : disque local primaire (partition système). HOMEPATH : dossier par défaut pour les utilisateurs. Le reste c'est les dossiers de windows xp.
Cmd.exe
Sur le système d'exploitation Windows NT, un fichier batch est un fichier texte contenant une série de commandes (Voir interpréteur de commandes). Quand le fichier batch est lancé, de la même manière (d'un point de vue utilisateur) qu'un exécutable ordinaire, les commandes du fichier sont exécutées dans l'ordre. Un fichier batch est l'équivalent d'un script shell sous Unix ou cygwin.
Les fichiers batch du Windows NT sont les fichiers dotés de l’extension .BAT ou .CMD. Leur syntaxe est héritée de COMMAND.COM de MS-DOS, mais est nettement plus puissante.
Le comportement par défaut de cmd.exe est d'afficher chaque commande sur la sortie standard avant de l'exécuter. C'est souvent non désiré, la commande ECHO OFF est souvent donnée au début d'un fichier batch. Cmd.exe interprète également le @, préfixé à la commande, pour empêcher une seule commande de s'afficher. De ce fait, beaucoup de fichiers batch commencent par la ligne @ECHO OFF.
Histoire et évolutions
La programmation des fichiers scripts sous les systèmes d'exploitation Microsoft a beaucoup évolué. Au départ, simple suites de commande sous les premières versions de MS-DOS, il permet un peu de programmation dans les versions livrées avec Windows 2000 et Windows XP.
Il existe deux modes d'exécution :
Un mode interactif
Un mode exécution de scripts
Dans le mode interactif, l'utilisateur tape les commandes qui sont exécutées immédiatement. Le mode script exécute une séquence de commandes définies dans un fichier batch.
À l'origine, le système MS-DOS fournit un interpréteur : command.com. Les programmes batch pour MS-DOS sont composés d'un ensemble relativement simple d'ensemble de commandes interprétées directement par command.com (commande interne) et des utilitaires qui existent en tant qu'exécutables séparés (commande externe).
Il existe des interpréteurs de commande plus évolués fournis par d'autres sociétés. Le plus connus est l'interpréteur 4DOS (ou 4NT sous Windows NT) de la société JP Soft.
Le système d'exploitation OS/2 comprend également un interpréteur de commande cmd.exe apparenté à celui de Windows NT.
Microsoft semble avoir abandonné les améliorations des fichiers batch pour se concentrer sur les scripts en VBScript ou Jscript permettant une programmation plus structurée et cohérentes avec les langages de macros de la suite Microsoft Office.
Commandes internes
On peut obtenir de l'aide sur toutes les commandes en tapant leur nom suivi de /? :
C:\>echo /?
Affiche des messages ou active/désactive l'affichage des commandes.
ECHO [ON OFF]
ECHO [message]
ECHO sans paramètres affiche l'état en cours de la commande.
* ECHO
Affiche une chaîne sur la sortie. Permet également d'autoriser ou d'interdire l'affichage des commandes sur la sortie standard par les commandes ECHO ON et ECHO OFF
* REM ou ::
Commentaire.
* SET
Sert à modifier des variables d'environnement. Équivalent de set et export sous bash
* FOR
Sorte de for. On peut grouper plusieurs commandes à l'aide de parenthèses. Par exemple :
for %x in (*.c) do (
echo copie de %x
copy %x c:\sos\
)
Cette commande a de nombreuses options la rendant beaucoup plus puissante que sa version MS-DOS.
* SHIFT
Décale les arguments. Équivalent du shift de bash.
* GOTO
Dirige cmd.exe sur une ligne étiquetée dans le programme de commandes. Les étiquettes sont sur un lignes précédées du caractère ":". Hérité des premières versions de COMMAND.COM qui ne permettaient pas beaucoup de structuration.
* IF
Le if connu de tous les programmeurs.
* ERRORLEVEL
Utilisé avec IF, teste si la valeur de retour d'un programme atteint ou dépasse une erreur donnée. Equivalent du $? de bash. Par exemple:
IF ERRORLEVEL 6 GOTO label
Continuera l'exécution à l'étiquette label si le dernier programme exécuté a retourné une valeur supérieure ou égale à 6.
* CALL
Appelle un autre programme batch. En effet l'appel simple à un fichier batch provoquera l'enchaînement du fichier sans retour possible vers le fichier appelant.
Permet également d'appeler une fonction (matérialisée par un label (:) et un retour au programme principal par GOTO :EOF)
Exemple d'appel de fonction avec un argument :
@ECHO OFF
ECHO "Avant fonction1"
CALL:fonction1 arg1
ECHO "Apres fonction1"
REM Sortie du programme
GOTO:EOF
:fonction1
ECHO "Fonction1 avec argument: %1"
REM Sortie de la fonction
GOTO:EOF
* START
Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné. Par exemple
start netscape
permet de démarrer la commande "netscape" dans une nouvelle fenêtre sans attendre la fin de son exécution. Il existe de nombreuses options.
Exemple
:: Start Vim on a copy of the tutor file.
@echo off
:: Usage: vimtutor [-console] [xx]
::
:: -console means gvim will not be used
:: xx is a language code like "es" or "nl".
:: When an xx argument is given, it tries loading that tutor.
:: When this fails or no xx argument was given, it tries using 'v:lang'
:: When that also fails, it uses the English version.
:: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
FOR %%d in (. %TMP% %TEMP%) DO IF EXIST %%d
ul SET TUTORCOPY=%%d\$tutor$
SET xx=%1
IF NOT .%1==.-console GOTO use_gui
SHIFT
SET xx=%1
GOTO use_vim
:use_gui
:: Try making a copy of tutor with gvim. If gvim cannot be found, try using
:: vim instead. If vim cannot be found, alert user to check environment and
:: installation.
:: The script tutor.vim tells Vim which file to copy.
:: For Windows NT "start" works a bit differently.
IF .%OS%==.Windows_NT GOTO ntaction
start /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start /w gvim -u NONE -c "set nocp" %TUTORCOPY%
Ref
S'abonner à :
Commentaires (Atom)
