HOME

FORUM

LIENS

A
PROPOS

CONTACT

E-MAIL

Menu

Guide
Unattended

Débutant

Intermédiaire

Tutoriaux

Base de
Registre

Application

Paramètres
silencieux:
Comment

Windows
Personnalisé

Langage
de
programmation

Généraux

Paramètres
silencieux

FAQ

Téléchargements

Contributions

Anti-Spyware

Anti-Virus

Codecs

Compression

Drivers

Edition
video&Audio

Firewalls

Graphics
&
Design

Internet
&
FTP

Lecteurs
Audio/Video

Messagerie
&
communication

MultiMedia

Navigateurs

Office
&
Visionneur

Optimsation
&
Tweakers

Utilitaires
Registre

Utilitaires
Systeme

Virtuel
& CD/DVD
Image

Centralisation correctifs (hotfixs)
pour
Vista/XP/2000

Forum

Moteur
de recherche

Entrez les termes
que vous recherchez. Envoyer un
formulaire de recherche

Web

ce
site

Membres
en ligne

Panneau
personnel

Connectez-vous au système
:

Login :

Mot de passe :

Connexion

Bannière

Par Fz@r!k_N@str0k :

Par Madjix :

Par Aralde Trent :

Par Echap2000 :

Nos
partenaires

Les
commandes Internes : batchs

Pour ceux qui ne
connaissent pas les langages de programmations
et qui voudraient faire quelques petits
programmes , le batch est fait pour vous

Voici toutes
les commandes internes du windows xp:

DEL
ou ERASE
COLOR
CD ou CHDIR
MD ou
MKDIR
RD ou
RMDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START
(inclut également des modifications dans l'appel
externe de
commande)
ASSOC
FTYPE

DEL ou
ERASE
Supprime un ou plusieurs
fichiers.

DEL [/P] [/F] [/S] [/Q]
[/A[[:]attributs]] noms
ERASE [/P] [/F] [/S]
[/Q] [/A[[:]attributs]] noms

noms : Spécifie une liste d'un ou plusieurs
fichiers ou répertoires. Les caractères
génériques peuvent être utilisés pour supprimer
plusieurs fichiers. Si un répertoire est
spécifié, tous les fichiers qu'il contient
seront supprimés.

/P :Demande une confirmation avant de
supprimer un fichier.

/F :Force la suppression de fichiers en
lecture seule.

/S :Supprime les fichiers dans tous les
sous-répertoires.

/Q :Pas de confirmation avant suppression
avec car. génériques.

/A :Suppression en fonction des
attributs
attributs:
R Fichiers en
lecture seule
S Fichiers système
H
Fichiers cachés
A Fichiers prêts pour
archive
- Préfixe de négation

Si les
extensions de commandes sont activées, DEL et
ERASE sont modifiées
comme suit :
La
logique d'affichage du commutateur /S est
inversée. Elle
n'affiche que les fichiers
supprimés, et pas ceux qui n'ont pas été
trouvés.

COLOR
Change
les couleurs par défaut du premier et de
l'arrière plan de la console.

COLOR
[attr]

attr Spécifie les attributs de couleurs de
l'apparence de la console

Les attributs
de couleurs sont spécifiés par DEUX chiffres
hexadécimaux -- le
premier correspond à
l'arrière plan, le second au premier plan.
Chaque chiffre
peut prendre n'importe quelle
de ces valeurs :

0 = Noir

1 = Bleu foncé

2 = Vert

3 = Bleu-gris

4 = Marron

5 = Pourpre

6 = Kaki

7 = Gris clair

8 = Gris

9 = Bleu clair

A = Vert clair

B = Cyan

C = Rouge

D = Rose

E = Jaune

F = Blanc

Si aucun argument
n'est donné, cette commande restaure les
couleurs
sélectionnées au moment où CMD.EXE a
été ouvert. Cette valeur vient soit de
la
fenêtre de la console, du commutateur en
ligne de commande /T, ou de la
valeur
DefaultColor du registre.

La
commande COLOR met ERRORLEVEL à 1 si vous tentez
de l'exécuter
avec la même couleur pour
l'arrière et le premier
plan.

Exemple : "COLOR fc"
affiche du rouge sur du
blanc

CD ou
CHDIR
Affiche le nom ou change le
répertoire en cours.

CHDIR [/D]
[lecteur:][chemin]
CHDIR [..]
CD [/D]
[lecteur:][chemin]
CD [..]

.. Signifie que vous voulez vous placer sur
le répertoire parent.

Entrez CD
lecteur: pour afficher le répertoire en cours
sur le lecteur.
Entrez CD sans paramètres
pour afficher le lecteur et le répertoire en
cours.

Utilisez le commutateur /D pour
modifier le lecteur actuel en plus de la
modification du répertoire actuel pour un
lecteur.

Si les extensions de commandes
sont activées, la commande CHDIR change comme
suit :

La chaîne du répertoire en
cours est convertie pour utiliser la même casse
que celle du disque. Donc, CD C:\TEMP fixera en
fait le répertoire en cours à C:\Temp si c'est
la casse utilisée sur le disque.

La
commande CHDIR ne traite pas les espaces comme
des séparateurs ; il est donc possible
d'utiliser CD pour aller dans un sous-répertoire
dont le nom contient des espaces sans entourer
ce nom de guillemets. Par exemple :

CODE

cd
\winnt\profiles\NomUtilisateur\programmes\menu
démarrer

est
identique à :

CODE

cd
"\winnt\profiles\NomUtilisateur\programmes\menu
démarrer"

qui est ce
que vous devez entrer si les extensions sont
désactivées.

MD ou
MKDIR
Crée un
répertoire.

MKDIR
[lecteur:]chemin
MD
[lecteur:]chemin

Si les
extensions de commandes sont activées, MKDIR est
modifié comme suit :

MKDIR crée tout
répertoire intermédiaire dans le chemin, si
nécessaire. Par exemple, supposez que \a
n'existe pas. Alors:

CODE

mkdir
\a\b\c\d

est
équivalent à :

CODE

mkdir
\a
chdir \a

mkdir b
chdir b

mkdir c
chdir c

mkdir
d

qui est ce
que vous auriez dû entrer si les extensions
étaient désactivées.

PROMPT
Change
l'invite de cmd.exe.

PROMPT
[texte]

texte spécifie une nouvelle
invite.

L'invite peut être composée de
caractères normaux et des codes suivants :

$A : & (signe &)

$B : | (barre verticale)

$C : ( (parenthèse gauche)

$D : date actuelle

$E : code ECHAP (code ASCII 27)

$F : ) (parenthèse droite)

$G : > (signe supérieur)

$H : retour arrière (efface le
caractère précédent)

$L : < (signe inférieur)

$N : lecteur en cours

$P : lecteur et chemin d'accès en
cours

$Q : = (signe égal)

$S : (espace)

$T : heure en cours

$V : numéro de version de Windows XP

$_ : retour chariot et saut de ligne

$$ : $ (signe dollar)

Si les
extensions de commandes sont activées, la
commande PROMPT prend en charge les caractères
de mise en forme suivants :

$+ : Zéro ou plus de signes plus (+),
en fonction de la profondeur de la pile de
répertoires PUSHD, un caractère par niveau
niveau.

$M : Affiche le nom distant associé à
la lettre de lecteur actuelle ou une chaîne vide
si le lecteur n'est pas un lecteur
réseau.

PUSHD
Stocke
le répertoire en cours pour utilisation par la
commande POPD, ensuite passe au répertoire
spécifié.

PUSHD [chemin | ..]

chemin Répertoire permettant de définir le
répertoire en cours.

Si les extensions
de commandes sont activées, la commande PUSHD
accepte les chemins réseau en plus des lettres
de lecteurs et chemins usuels.Si un chemin
réseau est spécifié, PUSHD associera une lettre
de lecteur temporaire à la ressource réseau
spécifiée puis changera le lecteur et le
répertoire en cours, en utilisant la lettre
ainsi définie. Les lettres de lecteur temporaire
sont données à partir de Z: en descendant, en
utilisant la première lettre libre
trouvée.

POPD
Passe
au répertoire stocké par la commande
PUSHD.

POPD

Si les
extensions de commandes sont activées, la
commande POPD supprime toute association
temporaire de lettre de lecteur créée par PUSHD
lorsque vous appliquez cette commande à ce
lecteur de la pile des répertoires
émis.

SET
Affiche,
fixe ou supprime des variables d'environnement
de cmd.exe.

SET
[variable=[chaîne]]

variable Nom de la variable
d'environnement.

chaîne Chaîne de caractères à
affecter à la variable.

SET sans
paramètres affiche les variables d'environnement
définies.

Si les extensions de commandes
sont activées, SET est modifié comme
suit :

La commande SET appelée avec
un nom de variable seulement, sans signe égal ou
valeur, affiche la valeur de toutes les
variables dont le préfixe correspond au nom
donné à la commande SET. Par
exemple :

CODE

SET P

affiche
toutes les variables qui commence avec la lettre
'P'

La commande SET fixe la valeur
ERRORLEVEL à 1 si le nom de variable n'est pas
trouvé dans l'environnement en cours.

La
commande SET n'autorise pas qu'un signe égal (=)
fasse partie du nom d'une variable.

Deux
nouvelles options ont été ajoutées à la commande
SET :

CODE

SET /A
expression
SET /P
variable=[ChaîneInvite]

L'option
/A spécifie que la chaîne à droite du signe égal
est une expression numérique qui est évaluée.
L'évaluation de l'expression est assez simple et
prend en charge les opérations suivantes dans
l'ordre décroissant de préséance :

() - groupement

! ~ - - opérateurs unaires

* / % - opérateurs arithmétiques

+ - - opérateurs arithmétiques

<< >> - décalage logique

& - ET au niveau du bit

^ - OU exclusif au niveau du bit

| - OU au niveau du bit

= *= /= %= += -= - attribution

&= ^= |= <<= >>=, -
séparateur d'expression

Si vous
utilisez des opérateurs logiques ou des nombres,
vous devez mettre l'expression entre guillemets.
Toute chaîne non numérique dans l'expression est
traitée comme une variable d'environnement dont
les valeurs sont converties en nombres avant
d'être utilisées. Si un nom de variable
d'environnement est spécifié mais n'est pas
défini dans l'environnement en cours, alors la
valeur zéro est utilisée. Cela vous permet de
faire des opérations avec les valeurs d'une
variable d'environnement sans avoir à entrer des
signes % pour obtenir ces valeurs. Si SET /A est
exécuté à partir de la ligne de commande en
dehors d'un script de commande, alors la valeur
finale de l'expression est affichée. L'opérateur
d'assignation requiert un nom de variable
d'environnement à gauche du cet opérateur. Les
valeurs numériques sont des nombres décimaux, à
moins qu'ils ne soient préfixés par 0x pour les
valeurs hexadécimales et 0 pour la notation
octale. Donc 0x12 est identique à 18 et à 022.
Notez que la notation octale peut être
confuse : 08 et 09 ne sont pas valides car
8 et 9 ne sont pas des nombres valides en
notation octale.

L'option /P vous permet
de fixer la valeur d'une variable avec une ligne
entrée par l'utilisateur. Elle affiche la chaîne
ChaîneInvite spécifiée avant de lire la ligne
entrée. La ChaîneInvite peut être
vide.

La substitution de la variable
d'environnement a été améliorée comme
suit :

CODE

%PATH:ch1=ch2%

développe
la variable d'environnement PATH, remplaçant
chaque occurrence de "ch1" dans le résultat
développé par "ch2". "ch2" peut être
une
chaîne vide pour supprimer toutes les
occurrences de "ch1" de la sortie développée.
"ch1" peut commencer par un astérisque, auquel
cas
la commande traitera la chaîne à partir
du début et jusqu'à la première occurrence du
reste de ch1.

Vous pouvez aussi spécifier
des sous-chaînes pour une expression.

CODE

%PATH:~10,5%

développe
la variable d'environnement PATH et utilise
seulement 5 caractères à partir du onzième
(décalage de 10) dans le résultat sous forme
développée. Si la longueur n'est pas spécifiée,
tout le reste de la valeur de la variable est
traité. Si l'une des valeurs (décalage ou
longueur) est négative, alors le nombre utilisé
est la longueur de la valeur de la variable
d'environnement ajoutée au décalage ou à la
longueur donné.

CODE

%PATH:~-10%

extrait
les 10 derniers caractères de la variable
PATH.

CODE

%PATH:~0,-2%

extrait tous
les caractères sauf les deux derniers de la
variable PATH.

Enfin, la prise en charge
de l'expansion retardée de variables
d'environnement a été ajoutée. Cette prise en
charge est toujours désactivée par défaut, mais
peut être activée/désactivée via l'option de
ligne de commande /V dans CMD.EXE.
Voir CMD
/?

La prise en charge de l'expansion
retardée de variables d'environnement est utile
pour contourner les limites de l'expansion en
cours qui se produit à la lecture d'une ligne de
texte et non à son exécution. L'exemple suivant
montre le problème causé par l'expansion
immédiate de
variables :

CODE

set
VAR=avant
if "%VAR%" == "avant"
(
set
VAR=après
if
"%VAR%" == "après" @echo Cela marche si vous
lisez ce message

)

n'affichera
jamais le message car la variable %VAR% présente
dans les deux instances de IF est remplacée à la
lecture de la première instance de IF, étant
donné que le corps de IF, instruction composée,
est logiquement inclus. Donc le IF compris dans
l'instance compare "avant" avec "après" et il
n'y aura jamais égalité. De même, l'exemple
suivant ne fonctionnera pas comme
prévu :

CODE

set
LIST=
for %i in (*) do set
LIST=%LIST% %i
echo %LIST%

car la
liste des fichiers du répertoire ne sera PAS
créée, et en fait la variable LIST prendra le
valeur du dernier fichier trouvé. Une fois
encore cela est dû au fait que %LIST% n'est
étendu qu'une fois, lorsque FOR est lu et à ce
stade la variable LIST est vide. Donc la boucle
FOR exécutée est :

CODE

for %i in
(*) do set LIST=
%i

qui donne
toujours à LIST la valeur du dernier fichier
trouvé.

L'expansion retardée de variables
d'environnement vous permet d'utiliser un autre
caractère (le point d'exclamation) afin
d'étendre les variables d'environnement durant
l'exécution. Si l'expansion retardée de
variables est activée, les exemples ci-dessus
peuvent être écrits comme suit afin de
fonctionner comme vous le
souhaitez :

CODE

set
VAR=avant
if "%VAR%" == "avant"
(
set
VAR=après
if
"!VAR!" == "après" @echo Cela marche si vous
lisez ce message
)

set LIST=
for %i in (*) do
set LIST=!LIST! %i
echo
%LIST%

Si les
extensions de commandes sont activées, alors
plusieurs variables d'environnement dynamiques
peuvent être développées sans apparaître dans la
liste de variables affichée par SET. Les valeurs
de ces variables sont calculées dynamiquement
chaque fois que la variable est développée. Si
l'utilisateur définit explicitement une variable
avec un de ces noms, alors cette définition
écrase la définition dynamique décrite
ci-dessous :

%CD% - se développe en
la chaîne du répertoire en cours.

%DATE%
- se développe en la date actuelle en utilisant
le même format que la commande
DATE.

%TIME% - se développe en l'heure en
cours en utilisant le même format que la
commande TIME.

%RANDOM% - se développe en
un nombre aléatoire compris entre 0 et
32767.

%ERRORLEVEL% - se développe en la
valeur en cours de
ERRORLEVEL

%CMDEXTVERSION% - se développe
en le numéro de version des extensions du
processeur de commande en
cours.

%CMDCMDLINE% - se développe en la
ligne de commande originale qui a appelé le
processeur de commande.

SETLOCAL
Commence
la localisation des modifications de
l'environnement dans un fichier de commandes.
Les modifications d'environnement effectués
après SETLOCAL sont locaux au fichier de
commandes. Lorsque la fin du fichier de
commandes est atteinte, ENDLOCAL est exécuté
pour toutes les commandes SETLOCAL émises par le
fichier de
commandes.

SETLOCAL

Si les
extensions de commandes sont activées, SETLOCAL
est modifié comme suit :

La commande
SETLOCAL accepte maintenant un argument
optionnel :

ENABLEEXTENSIONS / DISABLEEXTENSIONS
: active ou désactive les extensions de
commandes. Entrez CMD /? pour plus de détails.

ENABLEDELAYEDEXPANSION /
DISABLEDELAYEDEXPANSION : active ou
désactive l'expansion des variables
d'environnement retardées. Entrez SET /? pour
plus de détails. Ces modifications sont actives
jusqu'à l'exécution de la commande ENDLOCAL
corre
spondante, sans tenir compte de leur
état avant l'instruction SETLOCAL.

La
commande SETLOCAL fixera la valeur ERRORLEVEL si
elle reçoit un argument. Ce sera zéro si un des
deux arguments valides est donné, et
1 sinon.
Vous pouvez vous en servir dans les fichiers de
commandes pour déterminer si les extensions sont
disponibles, en utilisant la technique suivante
:

CODE

VERIFY
OTHER 2>nul
SETLOCAL
ENABLEEXTENSIONS
IF ERRORLEVEL 1
echo Impossible d'activer les extensions

Cela
marche, car sur les anciennes versions de
CMD.EXE, SETLOCAL NE fixe PAS la valeur de
ERRORLEVEL. La commande VERIFY avec un argument
non valide initialise ERRORLEVEL à une valeur
non nulle.

ENDLOCAL
Arrête
la localisation des changements de
l'environnement dans un fichier de commandes.
Les changements effectués après ENDLOCAL ne sont
pas localisés au fichier ; les valeurs
précédentes ne sont pas rétablies après que le
fichier de commandes ait terminé son
exécution.

ENDLOCAL

Si les
extensions de commandes sont activées, ENDLOCAL
est modifié comme suit :

Si le SETLOCAL
correspondant active ou désactive les extensions
de commandes en utilisant les nouvelles options
ENABLEEXTENSIONS ou DISABLEEXTENSIONS, alors
après ENDLOCAL, l'état activé/désactivé des
extensions de commandes sera restauré à la
valeur qu'il avait avant l'exécution de la
commande SETLOCAL
correspondante.

IF
Lance
l'exécution conditionnelle dans un programme de
commandes.

IF [NOT] ERRORLEVEL nombre
commande
IF [NOT] chaîne1==chaîne2
commande
IF [NOT] EXIST nom_de_fichier
commande

NOT : Indique que Windows XP
n'effectue la commande que si la condition est
fausse.

ERRORLEVEL nombre : Condition vraie
si le dernier programme exécuté a retourné un
code sortie supérieur/égal au nombre donné.

commande : Spécifie la commande à
exécuter si la condition est satisfaite.

chaîne1==chaîne2 : Condition vraie si
les chaînes spécifiées sont identiques.

EXIST nom_de_fichier : Condition
vraie si le nom de fichier donné existe.

commande : Spécifie la commande à
exécuter si la condition est vérifiée. Commande
peut être suivi de la commande ELSE qui
exécutera la commande située après le mot-clé
ELSE si la condition est fausse
(FALSE)

La clause ELSE doit être sur la
même ligne que la commande suivant IF. Par
exemple:

CODE

IF EXIST
nomfichier. (
del
nomfichier.
) ELSE (

echo nomfichier.
introuvable.

)

L'exemple
suivant NE marche PAS car la commande del doit
être terminée par une nouvelle ligne :

CODE

IF EXIST
nomfichier. del nomfichier. ELSE echo
nomfichier.
introuvable

L'exemple
suivant NE marche PAS non plus, car la commande
ELSE doit être sur la même ligne que la fin de
la commande IF :

CODE

IF EXIST
nomfichier. del nomfichier.
ELSE
echo nomfichier.
introuvable

Enfin,
l'exemple suivant marche si vous l'écrivez sur
une seule ligne :

CODE

IF EXIST
nomfichier. (del nomfichier.) ELSE echo
nomfichier.
introuvable

Si les
extensions de commandes sont activées, IF est
modifié comme suit :

CODE

IF [/I]
Chaîne1 op-de-comp Chaîne2 commande

IF CMDEXTVERSION nombre commande

IF DEFINED variable
commande

où
op-de-comp peut être :

[list]

EQU - égal à

NEQ - différent de

LSS - inférieur à

LEQ - inférieur ou égal à

GTR - supérieur à

GEQ - supérieur ou égal à

et le commutateur /I, s'il est
spécifié, demande d'ignorer la casse dans la
comparaison des chaînes. Le commutateur /I peut
également être utilisé pour la forme
Chaîne1==Chaîne2 de IF. Ces comparaisons sont
génériques : si les chaînes Chaîne1 et Chaîne2
sont toutes deux faites uniquement de chiffres,
alors elles sont converties en nombres, et une
comparaison numérique est alors
effectuée.

La condition CMDEXTVERSION
marche comme ERRORLEVEL, sauf qu'elle compare à
un numéro de version interne associé aux
extensions de commandes. La première version des
extensions est 1. Ce numéro sera incrémenté de
un à chaque amélioration significative. La
condition CMDEXTVERSION n'est jamais vraie
lorsque les extensions de commandes sont
désactivées.

La condition DEFINED
fonctionne comme EXISTS, sauf qu'elle prend un
nom de variable d'environnement et renvoie vrai
si la variable d'environnement est
définie.

%ERRORLEVEL% sera une
représentation sous forme de chaîne de la valeur
en cours de ERRORLEVEL, pourvu qu'il n'existe
pas déjà de variable
d'environnement portant
le nom ERRORLEVEL, auquel cas ce serait la
valeur de cette dernière que vous obtiendriez.
En utilisant cela et les comparateurs numériques
ci-dessous, vous pouvez faire :

CODE

goto
answer%ERRORLEVEL%

:answer0
echo Le programme
a retourné le code 0

:answer1
echo Le programme
a retourné le code
1

vous
pouvez aussi faire, en utilisant les
comparaisons numériques ci-dessus :

CODE

IF
%ERRORLEVEL% LEQ 1 goto
okay

%CMDCMDLINE%
sera la ligne de commande originale passée à
CMD.EXE avant tout traitement par CMD.EXE,
pourvu qu'il n'existe pas déjà de variable
d'environnement portant le nom CMDCMDLINE,
auquel cas ce serait la valeur de cette dernière
que vous obtiendriez.

%CMDEXTVERSION%
sera une chaîne représentant la valeur actuelle
de CMDEXTVERSION, tant qu'il n'existe pas déjà
de variable d'environnement
appelée
CMDEXTVERSION, dans quel cas vous obtiendrez sa
valeur à la place.

FOR
Exécute
une commande donnée pour chaque fichier d'un
ensemble de fichiers.

FOR %variable IN
(ensemble) DO commande [paramètres]

%variable : Spécifie un paramètre
remplaçable par une seule lettre.

(ensemble) : Ensemble de fichiers.
Caractères génériques autorisés.

commande : Commande à exécuter pour
chaque fichier.

paramètres : Liste des paramètres ou
des options pour la commande
spécifiée.

Pour utiliser la commande
FOR dans un programme de commandes, spécifiez
%%variable au lieu de %variable. Les noms de
variables respectent la casse, donc %i est
différent de %I.

Si les extensions de
commandes sont activées, les formes
supplémentaires suivantes sont prises en charge
pour la commande FOR :

FOR /D
%variable IN (ensemble) DO commande
[paramètres]

Si ensemble contient
des caractères génériques, alors la
correspondance se fait sur les noms de
répertoires au lieu des noms de
fichiers.

FOR /R
[[lecteur:]chemin] %variable IN (ensemble) DO
commande [paramètres]

Parcourt
l'arborescence de répertoires depuis la racine
[lecteur:]chemin, en exécutant FOR dans chaque
répertoire de l'arborescence. Si aucun
répertoire n'est spécifié après /R alors le
répertoire en cours est utilisé. Si ensemble est
seulement un point (.) alors seule
l'arborescence de répertoires sera
énumérée.

FOR /L %variable IN
(début,pas,fin) DO commande
[paramètres]

L'ensemble est une
séquence de chiffres allant de début à fin,
incrémenté de pas. Ainsi (1,1,5) génère la
séquence 1 2 3 4 5 et (5,-1,1) génère la
séquence (5 4 3 2 1)

FOR /F
["options"] %variable IN (ensemble-fichiers) DO
commande [paramètres]
FOR /F ["options"]
%variable IN ("chaîne") DO commande
[paramètres]
FOR /F ["options"] %variable IN
('commande') DO commande
[paramètres]

ou, si l'options
usebackq est utilisée :

FOR /F
["options"] %variable IN (ensemble-fichiers) DO
commande [paramètres]
FOR /F ["options"]
%variable IN ('chaîne') DO commande
[paramètres]
FOR /F ["options"] %variable IN
(`commande`) DO commande
[paramètres]

ensemble-fichiers est un
ou plusieurs noms de fichiers. Chaque fichier
est ouvert, lu et traité avant de passer au
fichier suivant de ensemble-fichiers. Le
traitement consiste à lire dans le fichier, le
découper en lignes individuelles de texte puis
analyser chaque ligne en zéro ou plusieurs
parties. Le corps de la boucle FOR est ensuite
appelé avec la ou les valeurs de variables
prenant la valeur de la ou des parties trouvées.
Par défaut, /F transmet la première partie
séparée par un blanc dans chaque ligne de chaque
fichier. Les lignes vides sont ignorées. Vous
pouvez outrepasser le comportement d'analyse par
défaut en spécifiant le paramètre optionnel
"options". Ceci est une chaîne entre guillemets
contenant un ou plusieurs mots-clés spécifiant
diverses options d'analyse.

Les mots-clés
sont :

eol=c : - spécifie un caractère de
commentaire de fin de ligne (un seul)

skip=n : - spécifie le nombre de
lignes à ignorer en début de fichier.

delims=xxx : - spécifie un ensemble
de délimiteurs. Ceci remplace l'ensemble de
délimiteurs par défaut qui sont l'espace et la
tabulation.

tokens=x,y,m-n : - spécifie les
parties de chaque ligne devant être transmises
au corps de FOR à chaque itération.Ceci
provoquera l'allocation de noms de variables
supplémentaires. La forme m-n est une étendue
spécifiant les parties allant de m à n. Si le
dernier caractère de la chaîne tokens= est une
astérisque, alors une variable supplémentaire
est allouée et reçoit le texte restant dans la
ligne suivant la dernière partie analysée.

usebackq : - spécifie que la nouvelle
sémantique est en place, lorsqu'une chaîne entre
guillemets inversés est exécutée en tant que
commande et une chaîne entre guillemets simples
est une chaîne de commande littérale et permet
l'utilisation de guillemets doubles pour citer
des noms de fichiers.

Quelques exemples
explicatifs :

CODE

FOR /F "eol=;
tokens=2,3* delims=, " %i in (monfich.txt) do
@echo %i %j
%k

analyse
chaque ligne de monfich.txt, en ignorant les
lignes commençant par un point-virgule, en
transmettant les 2nde et 3ème parties de chaque
ligne au corps de FOR, les parties étant
délimitées par des virgules et/ou espaces. Notez
que le corps de FOR référence %i pour
l'obtention de la 2nde partie, %j pour
l'obtention de la 3ème partie et %k pour
l'obtention des parties restantes après la 3ème.
Pour les noms de fichiers contenant des espaces,
placez les noms de fichiers entre guillemets
doubles. Afin d'utiliser ainsi les guillemets
doubles,vous devez également utiliser l'option
usebackq, faute de quoi les guillemets doubles
seraient interprétés comme définissant une
chaîne littérale à analyser.

%i est
déclarée explicitement dans la déclaration FOR
et %j et %k sont déclarées implicitement via
l'option tokens=. Vous pouvez spécifier jusqu'à
26 paries via la ligne tokens=, tant que cela ne
provoque pas de tentative de déclaration de
variable plus élevée que la lettre 'z' ou 'Z'.
Souvenez-vous que les variables de FOR se
composent de lettres, tiennent compte de la
casse, sont globales et que plus de 52 ne
peuvent pas être actives à la fois.

Vous
pouvez aussi utiliser la logique d'analyse FOR
/F sur une chaîne en plaçant ensemble-fichiers
entre guillemets entre les parenthèses, en
utilisant des guillemets simples. Elle sera
traitée comme une ligne d'entrée simple
provenant d'un fichier puis
analysée.

Enfin, vous pouvez utiliser la
commande FOR /F pour analyser les données en
sortie d'une commande. Faites ceci en plaçant
des guillemets inversés autour de
ensemble-fichiers entre les parenthèses. Elle
sera traitée comme une ligne de commande
transmise à un CMD.EXE enfant et la sortie est
gardée en mémoire et analysée comme s'il
s'agissait d'un fichier. Ainsi l'exemple
suivant :

CODE

FOR /F "usebackq delims==" %i IN
(`ensemble`) DO @echo
%i

énumérerait
les noms de variables d'environnement de
l'environnement en cours.

De plus, la
substitution de références de variables FOR a
été améliorée.Vous pouvez maintenant utiliser la
syntaxe optionnelle suivante :

%~I : - étend %I en supprimant les
guillemets (")

%~fI : - étend %I en nom de chemin
d'accès reconnu

%~dI : - étend %I en lettre de
lecteur uniquement

%~pI : - étend %I en chemin d'accès
uniquement

%~nI : - étend %I en nom de fichier
uniquement

%~xI : - étend %I en extension de
fichier uniquement

%~sI : - chemin étendu contenant
uniquement des noms courts

%~aI : - étend %I en attributs du
fichier

%~tI : - étend %I en date/heure du
fichier

%~zI : - étend %I en taille du
fichier

%~$PATH:I : - parcourt les
répertoires de la variable d'environnement PATH
et étend %I en nom du premier fichier reconnu
trouvé. Si le nom de la variable d'environnement
n'est pas défini ou que le fichier n'est pas
trouvé par la recherche, alors ce modificateur
étend en chaîne vide

Vous pouvez
combiner les modificateurs pour obtenir des
résultats composés :

%~dpI : - étend %I en lettre de
lecteur et chemin d'accès uniquement

%~nxI : - étend %I en nom de fichier
et extension uniquement

%~fsI : - étend %I en nom de chemin
complet avec noms courts uniquement

%~dp$PATH:i : - parcourt les
répertoires listés dans la variable
d'environnement PATH à la recherche de %I et
étend en lettre de lecteur du premier trouvé.

%~ftzaI : - étend %I en DIR comme
ligne en sortie

Dans les exemples
ci-dessus %I et PATH peuvent être remplacés par
d'autres valeurs valides. La syntaxe %~ se
termine par un nom de variable FOR valide.Le
choix de noms de variables en majuscules comme
%I facilite la lecture et empêche toute
confusion avec les modificateurs qui ne tiennent
pas compte de la casse.

CALL
Appelle
un programme de commandes depuis un
autre.

CALL [lecteur:] [chemin]
nom_de_fichier [paramètres de commande]

paramètres de commande Paramètres requis par
le programme de commandes appelé.

Si
les extensions de commandes sont activées, CALL
est modifié comme suit :

La commande
CALL accepte maintenant des étiquettes comme
cible de CALL. La syntaxe
est :

CALL :étiquette
arguments

Un nouveau contexte de
fichier de commandes est créé avec les arguments
spécifiés et le contrôle est transmis à la
commande suivant l'étiquette spécifiée. Vous
devez "quitter" deux fois en atteignant la fin
du script du fichier de commandes deux fois. La
première fois que vous lisez la fin, le contrôle
reviendra juste après la commande CALL. La
seconde fois vous quitterez le script de
commandes. Entrez GOTO /? pour une description
de l'extension GOTO :EOF qui vous permettra de
"retourner" en dehors d'un script de
commandes.

De plus, l'expansion de
références d'arguments du script de commandes
(%0, %1, etc.) a été modifiée comme suit :

%* se réfère à tous les arguments d'un
script de commandes (ex. %1 %2 %3 %4 %5
...)

La substitution de paramètres de
commandes (%n) a été améliorée. Vous pouvez
maintenant utiliser la syntaxe suivante en
option :

%~1 : - étend %1 en supprimant les
guillemets (")

%~f1 : - étend %1 en nom de chemin
d'accès reconnu

%~d1 : - étend %1 en lettre de
lecteur uniquement

%~p1 : - étend %1 en chemin d'accès
uniquement

%~n1 : - étend %1 en nom de fichier
uniquement

%~x1 : - étend %1 en extension de
fichier uniquement

%~s1 : - chemin étendu contenant
uniquement des noms courts

%~a1 : - étend %1 en attributs du
fichier

%~t1 : - étend %1 en date/heure du
fichier

%~z1 : - étend %1 en taille du
fichier

%~$PATH:1 : - parcourt les
répertoires de la variable d'environnement PATH
et étend %1 en nom du premier fichier reconnu
trouvé. Si le nom de la variable d'environnement
n'est pas défini ou que le fichier n'est pas
trouvé par la recherche, alors ce modificateur
étend en chaîne vide

Vous pouvez
combiner les modificateurs pour des résultats
composés :

%~dp1 : - étend %1 en lettre de
lecteur et chemin d'accès uniquement

%~nx1 : - étend %1 en nom de fichier
et extension uniquement

%~dp$PATH:1 : - parcourt les
répertoires listés dans la variable
d'environnement PATH à la recherche de %1 et
étend en lettre de lecteur du premier trouvé.

%~ftza1 : - étend %1 en DIR comme
ligne en sortie

Dans les exemples
ci-dessus %1 et PATH peuvent être remplacés par
d'autres valeurs valides. La syntaxe %~ se
termine par un numéro d'argument valide. Vous ne
pouvez pas utiliser les modificateurs %~ avec
%*

SHIFT
Change
la position de paramètres remplaçables dans un
programme de commandes.

SHIFT
[/n]

Si les extensions de commandes
sont activées, la commande SHIFT prend en charge
le commutateur /n qui lui indique de commencer
le décalage au énième argument, où n est compris
entre 0 et 8. Par exemple
:

CODE

SHIFT
/2

décalerait %3
en %2, %4 en %3, etc. et laisserait %0 et %1
intacts.

GOTO
Dirige
cmd.exe sur une ligne étiquetée dans le
programme de commandes.

GOTO nom

nom Chaîne utilisée en tant que nom dans le
programme de commandes.

Les noms sont
seuls sur une ligne et commencent par le signe
':'

Si les extensions de commandes sont
activées, GOTO est modifié comme suit
:

La commande GOTO accepte maintenant
l'étiquette cible :EOF, qui transfère le
contrôle à la fin du fichier de commande en
cours. C'est un moyen pratique de
sortir d'un
fichier de commande sans y définir de nom de
sortie. Entrer CALL /? pour avoir une
description des extensions de la commande CALL
qui
rendent cette fonctionnalité
utile.

START
Démarre
une nouvelle fenêtre pour exécuter le programme
ou la commande donné.

START
["titre"] [/D chemin] [/I] [/MIN] [/MAX]
[SEPARATE] [/LOW | /NORMAL | /HIGH | /REALTIME |
/ABOVENORMAL | /BELOWNORMAL] [/WAIT]
[commande/programme] [paramètres] [/b]

"titre" : Titre à afficher dans la
barre de titre.

chemin : Répertoire de démarrage

B : Démarre l'application sans créer
de nouvelle fenêtre. L'application ignore les
interruptions par ^C. A moins que l'application
ne le permette, ^Break est le seul moyen
d'interrompre l'application.

I : Le nouvel environnement sera
l'environnement initial passé à cmd.exe et non
pas l'environnement en cours.

MIN : Démarre la fenêtre réduite en
icône

MAX : Démarre la fenêtre en plein
écran

SEPARATE : Démarre le programme
Windows 16-bits en espace mémoire séparé

SHARED : Démarre le programme Windows
16-bits en espace mémoire partagé

LOW : Démarre l'application dans la
classe de priorité IDLE

NORMAL : Démarre l'application dans
la classe de priorité NORMAL

HIGH : Démarre l'application dans la
classe de priorité HIGH

REALTIME : Démarre l'application dans
la classe de priorité REALTIME

ABOVENORMAL : Démarre l'application
dans la classe de priorité ABOVENORMAL

BELOWNORMAL : Démarre l'application
dans la classe de priorité BELOWNORMAL

WAIT : Démarre l'application et
attend qu'elle se termine

com/prog : S'il s'agit d'une commande
cmd interne ou d'un fichier de commandes, alors
le processeur de commande est exécuté avec
l'option /K par cmd.exe. Cela signifie que la
fenêtre ne sera pas supprimée après l'exécution
de la commande. S'il ne s'agit pas d'une
commande cmd interne ou d'un fichier de
commandes alors il s'agit d'un programme et il
sera exécuté comme une application liée à une
fenêtre ou comme une application console.

paramètres : Paramètres passés à la
commande ou au programme

Si les
extensions de commandes sont activées,
l'invocation des extensions de commandes dans la
ligne de commandes ou la commande START sont
modifiées
comme suit :

Les
fichiers non exécutables peuvent être invoqués
via leur association de fichiers en tapant le
nom du fichier en tant que commande (ex :
WORD.DOC ouvrirait l'application associée à
l'extension de fichier .DOC). Voir les commandes
ASSOC et FTYPE pour savoir comment créer ces
associations depuis un script de
commandes.

Lors de l'exécution d'une
application GUI 32 bits, CMD.EXE n'attend pas
que l'application se termine avant de revenir à
l'invite de commandes. Ce nouveau comportement
ne se produit PAS s'il est exécuté depuis un
script de commandes.

Lors de l'exécution
d'une ligne de commandes dont la première partie
est la chaîne "CMD " sans extension ni
qualificateur de chemin d'accès, "CMD" est
remplacé par la valeur de la variable COMSPEC.
Ceci permet de ne pas utiliser le CMD.EXE du
répertoire en cours.

Lors de l'exécution
d'une ligne de commandes dont la première partie
ne contient PAS d'extension, CMD.EXE utilise la
valeur de la variable d'environnement PATHEXT
pour déterminer les extensions à rechercher et
leur ordre. La valeur par défaut de la variable
PATHEXT
est :

.COM;.EXE;.BAT;.CMD
Notez
que la syntaxe est identique à celle de la
variable PATH, avec des point-virgule séparant
les divers éléments.

Lors de la recherche
d'un exécutable, s'il n'y a pas de
correspondance pour l'extension, une recherche
est effectuée pour vérifier la correspondance
entre
nom de fichier et nom de répertoire.
S'il y a correspondance, la commande START ouvre
l'explorateur sur ce chemin d'accès. Si cela est
fait à partir de la ligne de commandes, cela est
équivalent à effectuer CD /D vers ce chemin
d'accès.

ASSOC
Affiche
ou modifie les associations des extensions de
fichiers

ASSOC [.ext[=[Type du
fichier]]]

.ext Spécifie l'extension de fichier avec
laquelle associer le type

Type_de_fichier Spécifie le type de fichier
à associer avec l'extension

Entrez
ASSOC sans paramètres pour afficher les
associations actuelles du fichier. Si ASSOC est
appelé avec uniquement une extension de fichier,
il affiche l'association de fichier actuelle
pour cette extension. Spécifiez nothing pour le
type de fichier et la commande supprimera
l'association pour cette
extension.

FTYPE
Affiche
ou modifie les types de fichiers utilisés dans
les associations d'extension de
fichiers

FTYPE
[TypeFichier[=[CommandeOuverture]]]

TypeFichier Spécifie le type de fichier à
examiner ou à modifier

CommandeOuverture Spécifie la commande
d'ouverture à utiliser lors du démarrage des
fichiers de ce type.

Entrez FTYPE sans
paramètre pour afficher les types de fichiers
qui ont actuellement une commande d'ouverture
définie. FTYPE est appelé avec un seul type de
fichier, il affiche la chaîne de la commande
d'ouverture actuelle pour ce type de fichier. Ne
spécifiez aucune commande d'ouverture pour
supprimer la chaîne de commande d'ouverture pour
un type de fichier. À l'intérieur d'une commande
d'ouverture, %0 ou %1 sont remplacés par les
noms de fichiers démarrés via l'association. %*
prend tous les paramètres et %2 représente le
premier, %3 le deuxième, etc. %~n prend les
paramètres restants, en commençant par le
énième, où n est compris entre 2 et 9 inclus.
Par exemple :

CODE

ASSOC
.pl=PerlScript
FTYPE
PerlScript=perl.exe %1
%*

vous
permet d'appeler un script Perl comme
suit :

CODE

script.pl
1 2 3

Si vous
voulez éliminer le besoin d'entrer les
extensions, exécutez ceci :

CODE

set
PATHEXT=.pl;%PATHEXT%

et le
script peut être appeler comme
suit :

CODE

script 1
2 3

RD ou
RMDIR
Supprime un
répertoire.

RMDIR [/S] [/Q]
[lecteur:]chemin
RD [/S] [/Q]
[lecteur:]chemin

/S : Supprime tous les répertoires et
les fichiers dans le répertoire spécifié en plus
du répertoire lui-même. Utilisé pour supprimer
une arborescence.

/Q : Mode silencieux, ne demande pas
de confirmation pour supprimer une arborescence
de répertoires avec
/S.

03/02/2004

Avril 2008

L

M

M

J

V

S

D

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

.
.
.
.

Publicité

Google

Les
liens favoris

WinAttended

cdXperso

Les Secrets de
Windows

Le registre

http://www.wpc-fr.net/articles/creer-son-cd-xp-2nde-partieautomatisation-de-linstallation

Communication

Nos
partenaires