MSDOS: batch pour executer une commande sur plusieurs fichiers

Je recherche. Tout et Rien, mais pas de petites annonces ici (pour les PA, c'est dans "Je donne, j'échange, j'achète et je vends")

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1232
Inscription : 13 févr. 2007 21:39
Localisation : Bordeaux

MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 » 19 déc. 2019 17:26

Salut à vous,
je dois utiliser la commande "DSK2NIC.EXE" pour convertir des fichiers .DSK en fichiers .NIC (jeux Apple II).
En principe, on dépose simplement l'icone du fichier DSK sur l'icone de DSK2NIC.EXE, et ça créé automatiquement un fichier .NIC dans le dossier du fichier .DSK original. Mon problème est que j'ai des centaines de fichiers à convertir, et que bien sûr, attraper un groupe d'icone DSK pour les mettre sur le DSK2NIC.EXE ne converti qu'un seul fichier ...
Donc j'aimerai créer un batch MSDOS qui permet de faire en sorte que DSK2NIC.EXE convertisse tous les fichiers DSK contenus dans un dossier.
La commande MSDOS "DSK2NIC.EXE JEU.DSK" fonctionne, elle me créé bien un fichier JEU.NIC. Mais "DSK2NIC.EXE *.DSK" ne fonctionne pas.
Sauriez-vous me dire comment créer un batch qui permettrait de faire executer la commande DSK2NIC.EXE sur tous les fichiers contenus dans un dossier ?

Merci !
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4003
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par bernouilli92 » 19 déc. 2019 17:32

quelque chose dans le genre :

Code : Tout sélectionner

for %i in (*.DSK); do DSK2NIC %i
Pas sûr que cela fonctionne sur un vieux dos 3.3 ou 5.1
HP, Casio, Sharp, Psion, quelques TI et divers autres

Avatar de l’utilisateur
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1232
Inscription : 13 févr. 2007 21:39
Localisation : Bordeaux

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 » 19 déc. 2019 19:25

Merci, je suis sur Windows 10, ça ne marche pas : message d'erreur "i était inattendu" ...
Mais maintenant que j'ai vu ton principe de la boucle, je vais chercher sur le web avec cette piste.
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.

Avatar de l’utilisateur
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4507
Inscription : 31 oct. 2006 16:08
Localisation : 67310 Westhoffen
Contact :

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par pir2 » 19 déc. 2019 19:28

en direct, la commande de bernouilli92 marche très bien.

Dans un .bat, tu dois doubler les %

Code : Tout sélectionner

for %%i in (*.DSK); do DSK2NIC %%i
Image
Image

Avatar de l’utilisateur
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1232
Inscription : 13 févr. 2007 21:39
Localisation : Bordeaux

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 » 19 déc. 2019 19:32

Oui merci, je venais justement de corriger cela, mais ça ne fonctionne pas comme je voudrai, je pense que DSK2NIC.EXE réagit comme si je lui demandais de faire un "DSK2NIC.EXE *.DSK", il ne veut pas et me demande à chaque fois de déposer mon fichier sur son icône ... Pourtant si par exemple je fais "DSK2NIC.EXE JEU.DSK" fonctionne sans qu'il me demande de déposer mon fichier sur son icône ... J'ai l'impression que DSK2NIC.EXE ne veut pas fonctionner s'il est suivi d'une variable au lieu d'un nom exact de fichier :cry:
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4003
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par bernouilli92 » 19 déc. 2019 19:35

Et si tu lances la commande en direct à partir d’une fenêtre cmd ?
dizzy33 a écrit :
19 déc. 2019 19:32
J'ai l'impression que DSK2NIC.EXE ne veut pas fonctionner s'il est suivi d'une variable au lieu d'un nom exact de fichier :cry:
Il n’est pas suivi d’une variable, la commande exécute une boucle for sur les fichiers présents et exécute à chaque fois la commande DSK2NIC suivie du nom du fichier en cours.

Qu’est-ce qui se passe quand tu exécutes manuellement depuis un Shell cmd, la commande DSK2NIC JEU.DSK ?

Tu lances la commande manuellement ou dans un fichier .bat?
Dans un fichier .bat, il faut s’assurer qu’il se lance bien dans le bon répertoire.
Dernière édition par bernouilli92 le 19 déc. 2019 19:46, édité 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres

Avatar de l’utilisateur
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1232
Inscription : 13 févr. 2007 21:39
Localisation : Bordeaux

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 » 19 déc. 2019 19:45

OK j'ai compris mon problème : la commande DSK2NIC.EXE n'accèpte pas que le nom du fichier .DSK comporte des espaces ...
La boucle marche nickel si les noms n'ont pas d'espaces, va donc falloir que je trouve le moyen de renommer un groupe de fichiers en appliquant une règle unique. Il me semble que j'avais un outil Windows genre "renamer" qui faisait ça, faut que je cherche ...
Merci à vous en tous cas pour votre aide !
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4003
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par bernouilli92 » 19 déc. 2019 19:48

Alors si c’est cela, cela doit fonctionner si tu mets des guillemets autour du %1 :
En direct :

Code : Tout sélectionner

for %i in (*.DSK); do DSK2NIC "%i"
HP, Casio, Sharp, Psion, quelques TI et divers autres

Avatar de l’utilisateur
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1232
Inscription : 13 févr. 2007 21:39
Localisation : Bordeaux

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 » 19 déc. 2019 19:52

GENIAAAAL !!! ça marche en ajoutant les guillemets ! Un énooorme merci, j'étais en train d'installer "Ant Renamer", mais plus besoin ! Ca fonctionne nickel !
Une nouvelle fois un énorme merci à vous tous !
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6887
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par gege » 21 déc. 2019 00:23

Bonjour,
Pour les trucs subtils comme ça je fais un DIR, copie dans un fichier, colle dans Excel, crée les chaînes de caractères de commandes, colle dans un fichier batch, et exécute le fichier.
Etape par étape :
1) DIR (exemple) dans un fichier
TOTO.DSK
Ma Grand Mere.DSK
2) copie dans Excel et bricolage
DSK2NIC.EXE "TOTO.DSK"
DSK2NIC.EXE "Ma Grand Mere.DSK"
3) copie dans un fichier (TOTO.BAT est parfait)
4) sur la ligne de commande : TOTO
et hop.
Marche à tous les coups
G.E.

Avatar de l’utilisateur
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1232
Inscription : 13 févr. 2007 21:39
Localisation : Bordeaux

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 » 21 déc. 2019 00:35

Effectivement une autre solution ...
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.

Nikass
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1453
Inscription : 12 nov. 2015 23:00
Localisation : trouducul du 31 et 34 aux lunes bleues

Re: MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par Nikass » 21 déc. 2019 01:18

Ouais ! La seule qui marche quand on tourne sur une plateforme qui a découvert l'escaping et les scripts vingt ans après les autres :mrgreen:

a+

Répondre

Revenir vers « Recherche informations / technique / etc ... [pas de petites annonces ici] »