Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ordre des commandes dans une ligne de commande dos

17 réponses
Avatar
marc.dufresne
bonjour à tous
j'ai besoin de traiter 2 commandes sous dos du type :
chcp 1252 | dir c:\mesimages\*.jpg >mesimages.txt
avec la barre verticale(altgr 6) je lance bien les commandes l'une derrière
l'autre!
Mais est-on sur que ces commandes vont s'éxécuter dans cet ordre car si ma
page de code 1252 n'est pas activé dans fichier texte les noms de fichier ne
prendrons pas les accents en compte.
Je demande ça car je l'ai déjà expérimenté et je me suis apperçu que mon
fichier texte n'était pas toujours valable, j'en ai conclu que la commande
DHCP1252 n'avait pas eut lieu avant la commande dir!
merci d'avance si quelqu'un peu m'informer sur cela

10 réponses

1 2
Avatar
FB
bonjour à tous
j'ai besoin de traiter 2 commandes sous dos du type :
chcp 1252 | dir c:mesimages*.jpg >mesimages.txt
avec la barre verticale(altgr 6) je lance bien les commandes l'une derrière
l'autre!
Mais est-on sur que ces commandes vont s'éxécuter dans cet ordre car si ma
page de code 1252 n'est pas activé dans fichier texte les noms de fichier ne
prendrons pas les accents en compte.
Je demande ça car je l'ai déjà expérimenté et je me suis apperçu que mon
fichier texte n'était pas toujours valable, j'en ai conclu que la commande
DHCP1252 n'avait pas eut lieu avant la commande dir!
merci d'avance si quelqu'un peu m'informer sur cela


Une solution batarde :

créer un batch avec les deux commandes séparées..

Mais je suppose que cette solution a été envisagée et non retenue !
François

Avatar
bsch
marc.dufresne nous a raconté
(news:4458e243$0$23435$) :

bonjour à tous
j'ai besoin de traiter 2 commandes sous dos du type :
chcp 1252 | dir c:mesimages*.jpg >mesimages.txt
avec la barre verticale(altgr 6) je lance bien les commandes l'une
derrière l'autre!
Mais est-on sur que ces commandes vont s'éxécuter dans cet ordre
car si ma page de code 1252 n'est pas activé dans fichier texte
les noms de fichier ne prendrons pas les accents en compte.
Je demande ça car je l'ai déjà expérimenté et je me suis apperçu
que mon fichier texte n'était pas toujours valable, j'en ai conclu
que la commande DHCP1252 n'avait pas eut lieu avant la commande
dir! merci d'avance si quelqu'un peu m'informer sur cela



En effet, comme dit FB, pourquoi 'piper' la commande ?

Tu peux très bien écrire la commande sur 2 lignes à la suite:

chcp 1252
dir c:mesimages*.jpg >mesimages.txt

et tu seras sûr que les commandes se feront dans l'ordre

N'y a-t'il pas moyen de tester le CHCP avec un errorlevel quelconque,
et, selon le résultat, passer à la 2ème ligne ou envoyer un message
d'erreur ?
Faudrait que je fouille dans mes bouquins du dos.
C'est possible avec 4NT si je me souviens bien

Si je trouve qque chose je reviens le dire.
Mais je ne sais pas non plus si ça tourne sous les winbugs actuels.


--
Amicalement

Bernard

Avatar
marc.dufresne
bonsoir
non je n'ai pas essayé avec un batch , mais ca peut être unse solution plus
sure
merci


"FB" a écrit dans le message de news:
4458e5d8$0$6668$
bonjour à tous
j'ai besoin de traiter 2 commandes sous dos du type :
chcp 1252 | dir c:mesimages*.jpg >mesimages.txt
avec la barre verticale(altgr 6) je lance bien les commandes l'une
derrière l'autre!
Mais est-on sur que ces commandes vont s'éxécuter dans cet ordre car si
ma page de code 1252 n'est pas activé dans fichier texte les noms de
fichier ne prendrons pas les accents en compte.
Je demande ça car je l'ai déjà expérimenté et je me suis apperçu que mon
fichier texte n'était pas toujours valable, j'en ai conclu que la
commande DHCP1252 n'avait pas eut lieu avant la commande dir!
merci d'avance si quelqu'un peu m'informer sur cela


Une solution batarde :

créer un batch avec les deux commandes séparées..

Mais je suppose que cette solution a été envisagée et non retenue !
François



Avatar
marc.dufresne
bonsoir
comment ça écrire sur deux ligne???
car je lance mes commande dos dans un programe sous VisualBasic, donc je
lance la commande Shell ("c:windowssystem32cmd.exe /s /c .....
je ne sais pas écrire sous deux ligne et si je relance cmd.exe pour la
deuxième fois la page de code est revenu à sa valeur initiale

merci
"bsch" a écrit dans le message de news:

marc.dufresne nous a raconté
(news:4458e243$0$23435$) :

bonjour à tous
j'ai besoin de traiter 2 commandes sous dos du type :
chcp 1252 | dir c:mesimages*.jpg >mesimages.txt
avec la barre verticale(altgr 6) je lance bien les commandes l'une
derrière l'autre!
Mais est-on sur que ces commandes vont s'éxécuter dans cet ordre
car si ma page de code 1252 n'est pas activé dans fichier texte
les noms de fichier ne prendrons pas les accents en compte.
Je demande ça car je l'ai déjà expérimenté et je me suis apperçu
que mon fichier texte n'était pas toujours valable, j'en ai conclu
que la commande DHCP1252 n'avait pas eut lieu avant la commande
dir! merci d'avance si quelqu'un peu m'informer sur cela



En effet, comme dit FB, pourquoi 'piper' la commande ?

Tu peux très bien écrire la commande sur 2 lignes à la suite:

chcp 1252
dir c:mesimages*.jpg >mesimages.txt

et tu seras sûr que les commandes se feront dans l'ordre

N'y a-t'il pas moyen de tester le CHCP avec un errorlevel quelconque,
et, selon le résultat, passer à la 2ème ligne ou envoyer un message
d'erreur ?
Faudrait que je fouille dans mes bouquins du dos.
C'est possible avec 4NT si je me souviens bien

Si je trouve qque chose je reviens le dire.
Mais je ne sais pas non plus si ça tourne sous les winbugs actuels.


--
Amicalement

Bernard



Avatar
Brat'ac
marc.dufresne a présenté l'énoncé suivant :

avec la barre verticale(altgr 6) je lance bien les commandes l'une derrière l'autre!



Bonjour,
Pour sur une même ligne lancer deux commandes il faut les séparer par "&"

exemple: dir c:travail >dir.txt & echo c'est terminé

GS

--
Il ne faut jamais remettre au lendemain ce qu'on peut faire faire le surlendemain
par quelqu'un d'autre.
Pierre PERRET

Avatar
bsch
marc.dufresne nous a raconté
(news:44592048$0$29603$) :


j'ai besoin de traiter 2 commandes sous dos du type :
chcp 1252 | dir c:mesimages*.jpg >mesimages.txt
avec la barre verticale(altgr 6) je lance bien les commandes
l'une derrière l'autre!


En effet, comme dit FB, pourquoi 'piper' la commande ?
Tu peux très bien écrire la commande sur 2 lignes à la suite:
et tu seras sûr que les commandes se feront dans l'ordre




comment ça écrire sur deux ligne???
car je lance mes commande dos dans un programe sous VisualBasic,
donc je lance la commande Shell ("c:windowssystem32cmd.exe /s
/c ..... je ne sais pas écrire sous deux ligne et si je relance
cmd.exe pour la deuxième fois la page de code est revenu à sa
valeur initiale


Pas besoin de VB pour un batch aussi simple.
Tu te contentes de copier ce qui est entre les lignes:

_______

@echo off
chcp 1252
dir c:mesimages*.jpg >mesimages.txt
_______

dans un fichier nommé 'toto.bat' (ou éventuellement 'toto.cmd' si tu es
sous NT/2k/xp, ça ne changera rien à l'arrivée dans ce cas)

(la ligne '@echo off' a simplement pour but d'éviter l'affichage de la
ligne de commande)

Il serait préférable de donner un chemin absolu au fichier de sortie:

.....>c:mesimages.txt
pour éviter de le retrouver à un endroit peut-être inadapté.

Et tu lances le 'toto.bat' depuis l'explorateur

Mais est-on sur que ces commandes vont s'éxécuter dans cet ordre




oui, la 2ème ligne après la 1ère, etc ...


N'y a-t'il pas moyen de tester le CHCP avec un errorlevel
quelconque, et, selon le résultat, passer à la 2ème ligne ou
envoyer un message d'erreur ?



ça par contre je ne l'ai pas retrouvé. C'était 4DOS qui le permettait,
si je me souviens bien. A l'époque du 'vrai' dos.




Et si ton fichier de sortie est sous 'vrai' dos (CP 437), tu peux
toujours l'envoyer dans un éditeur genre Metapad, qui permet la
conversion ASCII/ANSI, et le sauver dans le bon format.
Il existe des petits utilitaires qui le font en mode batch. Dans ce cas
tu envoies ton fichier CP437 dans la moulinette depuis ton batch. Ca
existait à l'époque Dos, on doit bien en retrouver quelques-uns. Je
fouille dans mon stock ...


--
Amicalement

Bernard



Avatar
jeuf
bsch avait énoncé :
marc.dufresne nous a raconté
(news:44592048$0$29603$) :

N'y a-t'il pas moyen de tester le CHCP avec un errorlevel
quelconque, et, selon le résultat, passer à la 2ème ligne ou
envoyer un message d'erreur ?



ça par contre je ne l'ai pas retrouvé. C'était 4DOS qui le permettait,
si je me souviens bien. A l'époque du 'vrai' dos.


Si, on peut tester l'errorlevel dans un batch, mais ça ne marche pas
avec toutes les commandes.
En principe, l'errorlevel 0 indique que la commande a été exécutée.
Mais il y a plus simple, c'est START/WAIT qui lance la commande, puis
attends, je crois, qu'elle soit terminée pour passer à la ligne
suivante. Pour la syntaxe exacte, voir gogol par exemple.
Le sujet a été évoqué récemment dans news:fr.comp.os.ms-windows

--
JFV - Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Nulla elit. Vestibulum hendrerit. Morbi a odio in lectus ornare
feugiat. Etiam quis mi. Cras wisi eros, ornare in, mattis et,
ullamcorper vitae, arcu. Duis eu nisl eget urna tempus hendrerit.



Avatar
bsch
jeuf nous a raconté (news:) :


Salut Jeuf

N'y a-t'il pas moyen de tester le CHCP avec un errorlevel
quelconque, et, selon le résultat, passer à la 2ème ligne ou
envoyer un message d'erreur ?



ça par contre je ne l'ai pas retrouvé. C'était 4DOS qui le
permettait, si je me souviens bien. A l'époque du 'vrai' dos.


Si, on peut tester l'errorlevel dans un batch, mais ça ne marche
pas avec toutes les commandes.


Ca ne marche pas avec chcp sous dos, win, etc.

Ca marchait avec 4DOS, je m'en servais régulièrement à l'époque pour
changer de pagecode entre 437 et 850 (pour les quelques rares progs qui
supportaient la 850). D'ailleurs, je trouvais préférable d'envoyer l'EL
dans l'environnement et de tester la variable (dans l'ordre ascendant
dans ce cas). C'était beaucoup plus rapide que la trollée de 'if
errorlevel x goto ... ', le résultat était quasi-instantané (sur un
vieux truc ...). Curieusement je n'ai jamais trouvé cette méthode nulle
part, je ne dois pourtant pas être le seul à y avoir pensé.

En principe, l'errorlevel 0 indique que la commande a été
exécutée. Mais il y a plus simple, c'est START/WAIT qui lance la
commande, puis attends, je crois, qu'elle soit terminée pour
passer à la ligne suivante. Pour la syntaxe exacte, voir gogol par
exemple. Le sujet a été évoqué récemment dans
news:fr.comp.os.ms-windows



Sinon, pour son problème de listing, pourquoi ne pas essayer File
lister ? http://www.tawbaware.com/filelist.htm

--
Amicalement

Bernard




Avatar
marc.dufresne
Bonsoir à tous
merci pour votre intérêt!
je vais faire simple un petit batchdu type
debut:
chcp 1252
if not chcp=52 goto debut
dir........

Mais pour vous est ce que ça vous parait possible que dans ma ligne de
commande originale la commande Chcp 1252 ne se soit pas éxécuté??

merci et bonne soirée

"Brat'ac" a écrit dans le message de news:

marc.dufresne a présenté l'énoncé suivant :

avec la barre verticale(altgr 6) je lance bien les commandes l'une
derrière l'autre!



Bonjour,
Pour sur une même ligne lancer deux commandes il faut les séparer par "&"

exemple: dir c:travail >dir.txt & echo c'est terminé

GS

--
Il ne faut jamais remettre au lendemain ce qu'on peut faire faire le
surlendemain par quelqu'un d'autre.
Pierre PERRET





Avatar
Droopy191
Salut,

En voyant ta demande et ta modification des pages de code,
une question me vient: comment faire pour que dans le fichier de sortie
les accents ( é à è ) ne soient pas remplacés par du chinois
par ex : Le cimetiŠre des ‚l‚phants.mp3

dir d:mp3s*.mp3 /s /o:n /n /a:-d /w >d:mp3s_dir.txt


--
DR
1 2