OVH Cloud OVH Cloud

Commande dir

4 réponses
Avatar
malikben
Bonjour,
J'ai un script qui recherche d'un fichier avec la=20
commande "dir".
Je teste si la commande c'est bien passe avec un "if".

Exemple:
C:
Dir winword.exe /s /B
If not %errorlevel%=3D=3D0 goto S1
Goto S2

Avec Windows 2000 SP3, le script fonctionne tr=E8s bien.
Errorlevel=3D0 OK
Errorlevel=3D1 Probl=E8me

Avec Windows NT4 SP6, le script ne fonctionne pas.
J'ai toujours errorlevel=3D5.

Je faudrais savoir si le probl=E8me est du a la version de=20
la commande "dir" et si vous avez une solution pour moi ?

Merci d'avance pour votre aide.

4 réponses

Avatar
Jean-Marc_Blt
la commande DIR est une commande interne, elle ne renvoi pas en principe
d'errrorlevel

voici un exemple qui devrait passer :
le principe c'est de rechercher un fichier impossible et de retourner le
résultat dans un fichier (qui sera donc vide). ensuite tu recherches ton
fichier; s'il n'existe pas, tu aura aussi un fichier vide, sinon tu auras un
fichier avec des caractères dedans.
tu compares donc les deux fichiers obtenus, s'il sont égaux, pas de
winword.exe, sinon il y en a un.
pour comparer les fichier, utilises FC qui est une commande externe (et donc
qui renvoit toujours un errorlevel)

**** DEBUT DE COPIE *****
@echo off
dir paspossible.aaa /s /b >test1.txt
dir winword.exe /s /b >test2.txt
fc test1.txt test2.txt >nul
if errorlevel 1 goto ok
if errorlevel 0 goto non
:non
echo pas de winword.exe
goto fin
:ok
echo winword.exe present
:fin
**** FIN DE COPIE *****


a+
JM


"malikben" a écrit dans le message de
news:075901c355b3$408809b0$
Bonjour,
J'ai un script qui recherche d'un fichier avec la
commande "dir".
Je teste si la commande c'est bien passe avec un "if".

Exemple:
C:
Dir winword.exe /s /B
If not %errorlevel%==0 goto S1
Goto S2

Avec Windows 2000 SP3, le script fonctionne très bien.
Errorlevel=0 OK
Errorlevel=1 Problème

Avec Windows NT4 SP6, le script ne fonctionne pas.
J'ai toujours errorlevel=5.

Je faudrais savoir si le problème est du a la version de
la commande "dir" et si vous avez une solution pour moi ?

Merci d'avance pour votre aide.
Avatar
michel
Légère modif, option /s inutile pour le premier test, autrement bien vu.

@echo off
dir paspossible.aaa /b >test1.txt
dir winword.exe /s /b >test2.txt
fc test1.txt test2.txt >nul
if errorlevel 1 goto ok
if errorlevel 0 goto non
:non
echo pas de winword.exe
goto fin
:ok
echo winword.exe present
:fin

"Jean-Marc_Blt" a écrit dans le message news:
la commande DIR est une commande interne, elle ne renvoi pas en principe
d'errrorlevel

voici un exemple qui devrait passer :
le principe c'est de rechercher un fichier impossible et de retourner le
résultat dans un fichier (qui sera donc vide). ensuite tu recherches ton
fichier; s'il n'existe pas, tu aura aussi un fichier vide, sinon tu auras un
fichier avec des caractères dedans.
tu compares donc les deux fichiers obtenus, s'il sont égaux, pas de
winword.exe, sinon il y en a un.
pour comparer les fichier, utilises FC qui est une commande externe (et donc
qui renvoit toujours un errorlevel)

**** DEBUT DE COPIE *****
@echo off
dir paspossible.aaa /s /b >test1.txt
dir winword.exe /s /b >test2.txt
fc test1.txt test2.txt >nul
if errorlevel 1 goto ok
if errorlevel 0 goto non
:non
echo pas de winword.exe
goto fin
:ok
echo winword.exe present
:fin
**** FIN DE COPIE *****


Avatar
malikben
Bonjour,

Merci pour la solution que vous m'avez propose, elle
fonctionne très bien sous Windows 2000.
Mais sous Windows N4 SP6, avec la commande fc.exe j'ai
le "errorlevel" qui est toujours égale 0.

Merci d'avance pour votre aide.
Avatar
malikben
Je le lance avec le script d'ouverture de session.
Pourquoi ?

Merci d'avance pour votre aide.