FORUM Tom's Hardware » Programmation » Autre » msdos écrire batch
 

msdos écrire batch

Il y a 343 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : msdos écrire batch
 
Plus d'informations

Bonsoir,
La commande attrib toto.txt fonctionne en commande en ligne.
Par contre dans un batch j'ai un message d'erreur, voici le code
if attrib toto.txt echo "c'est un fichier archivé !"
....

Merci pour vos conseils
Saïd

Profil : Pointeur
Plus d'informations

faut pas faire comme ca :o

Code :
  1. attrib toto.txt
  2. if %ERRORLEVEL% 1 echo fichier archivé


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

merci pour la réponse
Est-ce que le code fonctionne :
set compteur=0
compteur = compteur +1
Je compte sur votre collaboration pour avancer dans mes trucs.
A très bientôt
Saïd

Profil : Pointeur
Plus d'informations

non ca fonctionne pas

faut utiliser

Code :
  1. set /p

pour ca
(plus sur du /p)


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Bonjour,
Je souhaiteraix savoir si un fichier est archivé ou non. Le code ci-dessous fourni dans la cette liste ne fonctionne pas sur ma machine:
attrib toto.txt
if %ERRORLEVEL% 1 echo fichier archivé
....

voici le message d'erreur :
1 était inattendu.
Merci et très bonne journée
Saïd

Plus d'informations

Bonjour,
Je souhaiteraix savoir si un fichier est archivé ou non. Le code ci-dessous fourni dans la cette liste ne fonctionne pas sur ma machine:
attrib toto.txt
if %ERRORLEVEL% 1 echo fichier archivé
....

voici le message d'erreur :
1 était inattendu.
Merci et très bonne journée
Saïd

zeb
Profil : Modérateur libre
Plus d'informations

Merci de présenter tes extraits de code entre les balises [CODE], comme fait le gros chat gris.

La syntaxe exacte de ERRORLEVEL est :

if %ERRORLEVEL%==1



Malheureusement, la commande ATTRIB ne gère pas ERRORLEVEL.

Batchy connaît sans doute une manière full-DOS pour faire ça. ;)

Moi, je te propose plutôt de regarder du côté des UnxUtils, en particulier la commande GREP :

ATTRIB toto.txt | GREP -qs ^A
IF %ERRORLEVEL%==1 THEN ECHO Fichier archivé

Message cité 1 fois
Message édité par zeb le 22-06-2006 à 14:47:36
zeb
Profil : Modérateur libre
Plus d'informations

Pour tout connaître sur ERRORLEVEL, c'est la commande IF qu'il faut explorer :

IF /?

Plus d'informations

Maître bachi au secours je ne sais pas comment résoudre mon problème. Avis ) ceux qui le connaisse, parlez lui de mon prob. vous serez bien sympathique.
Pour le moment je n'ai aucun résultat probant. Toutefois, je remercie les personnes qui ont bien voulu m'apporter de l'aide.
A toute.
Saïd

Profil : Pointeur
Plus d'informations

arf me suis trompé
c'est soit

Code :
  1. if ERRORLEVEL 1

ou

Code :
  1. if %ERRORLEVEL%==1


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
zeb
Profil : Modérateur libre
Plus d'informations

arf... c'est vrai.. Attention !
Les expressions

if ERRORLEVEL 1
if %ERRORLEVEL% == 1

ne sont pas équivalentes.

La seconde est facile à utiliser, mais n'existe que sous Win2K et +.
Elle renvoie directement le code de retour de l'application (le fameux int main(.., cher à Emmanuel Delahaye ;))

La première est vraiment un *niveau* d'erreur. En fait, elle est équivalente à

if %ERRORLEVEL% >= 1

. Disponible sous DOS depuis les premières versions.

Plus d'informations

Re salut,
ce code ne fonctionne toujours pas.
attrib toto.txt
if ERRORLEVEL 1 echo fichier archivé
Le message n'est pas affiché alors que le fichier est bien archivé. J'ai tapé en mode commande
echo %errorlevel%
le système répond tours 0 quelque soit l'état de l'attibut archive..
A mon avis il faut abandonner la solution du errorlevel car il n'a aucun impact sur la commande attrib.

Je suis conscients que DOS remonte à loin, mais je compte toujours sur vous pour trouver cette solution.
Bonne nuit
Saïd

zeb
Profil : Modérateur libre
Plus d'informations

M'enfin, tu lis ce qu'on t'écrit. Si ce n'est pas le cas, dis le tout de suite !

a écrit :

1°) Merci de présenter tes extraits de code entre les balises [CODE]
2°) Malheureusement, la commande ATTRIB ne gère pas ERRORLEVEL.

Plus d'informations

Salut Zeb.
Je lis toujours avec plaisir ce qui est écrit. Je suis dans l'impossibilité d'écrire le code entre les balises.
Bref, reournons à nos moutons.
Pour info je n'ai toujours pas trouvé comment savoir si un fichier est archivé ou non. A mon avis il faudrait trouvé un moyen pour réécrire la commande attrib qui enverrai 1 lorsque le fichier est archivé ou 0 dans le cas contraire.
Merci pour vos différentes propositions.
Saïd

zeb
Profil : Modérateur libre
Plus d'informations

Citation :

Salut Zeb.

:) Salut

Citation :

Je lis toujours avec plaisir ce qui est écrit.

:)

Citation :

Je suis dans l'impossibilité d'écrire le code entre les balises.

:( C'est mal. Qu'est-ce qui t'empêche de me foutre ces $*#% de balises CODE ? Clique là dessus http://img.presence-pc.com/forum/themes_static/images_forum/1/edit.gif
et apprend à te servir du bouton http://img.presence-pc.com/forum/icones/message/c.gif

Citation :

Bref, reournons à nos moutons.

:)

Citation :

Pour info je n'ai toujours pas trouvé comment savoir si un fichier est archivé ou non.

:( ATTRIB

Citation :

A mon avis il faudrait trouvé un moyen pour réécrire la commande attrib qui enverrai 1 lorsque le fichier est archivé ou 0 dans le cas contraire.

:( bis repetitas :

Code :
  1. ATTRIB toto.txt | GREP -qs ^A
  2. IF %ERRORLEVEL%==1 THEN ECHO Fichier archivé
Citation :

Merci pour vos différentes propositions.

:) De rien

Citation :

Saïd

:) zeb


( 5 :) pour 3 :(, c'est pas mal )

Plus d'informations

ATTRIB toto.txt | GREP -qs ^A
IF %ERRORLEVEL%==1 THEN ECHO Fichier archivé


Ce code ne fonctionne pas. Voici le message d'erreur :

grep n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
Après des différentes recherches sur internet j'ai découvert que c'est une commande unix.

remarque : désolé pour les balises, je ne peux vraiment les mettre, un jour Zeb comprendra peut-être pourquoi c'est ainsi.
Bonne soirée les amis.
Saïd

zeb
Profil : Modérateur libre
Plus d'informations

Ce code fonctionne. Ici je te dis où trouver la fonction GREP pour Windows.

Encore une fois je répète :
- Merci de lire ce qu'on écrit, une solution a déjà été donnée.
- Merci d'utiliser les balises [CODE]

Plus d'informations

j'ai téléchargé grep.exe, ça ne fonctionne toujours pas. Par contre je n'ai plus le message d'erreur. Dans tous les cas l'affichage de %errorlevel% me retourne la valeur 0 même en désarchivant toto.txt
Remarque version du windows xp familial

a+
Saïd

zeb
Profil : Modérateur libre
Plus d'informations

Ah bah oui, c'est le contraire !

ERRORLEVEL est égal à 1 si le fichier n'est pas archivé et à 0 si le fichier est archivé.

Pour s'en convaincre :

ATTRIB toto.txt | GREP -qs ^A
ECHO %ERRORLEVEL%

Plus d'informations

Salut à tous,
Merci encore pour votre aide. Ca fonctionne très bien.

J'essaie maintenant de comptabiliser les fichiers archivés ayant l'extension xls du répertoire c:\tests. Mais, le code ci-dessous me renvoie une valeur correspondant au nombre de fichiers contenus dans ce répertoire.
Merci pour vos suggestions.
Saïd

[
REM PROGRAMME COMPTABILISANT LES FICHIERS ARCHIVES

@echo off
cls

REM DECLARATION DE LA VARIABLE CONTENANT LE NOMBRE DE FICHIERS ARCHIVES
set /a compteur=0

for %%f IN (c:\tests\*.xls) do (
attrib %%f | GREP -qs ^A
if %errorlevel%==0 set /a compteur+=1
)
@echo %compteur% fichier archivé(s)
pause
set compteur=
]

zeb
Profil : Modérateur libre
Plus d'informations

Pas mal le coup des crochets.
Je t'invite à remplacer le crochet ouvrant par [CODE]

zeb
Profil : Modérateur libre
Plus d'informations