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 du membre
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1463
Enregistré le : 13 févr. 2007 20:39
Localisation : Bordeaux

MSDOS: batch pour executer une commande sur plusieurs fichiers

Message par dizzy33 »

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 du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

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

Message par bernouilli92 »

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 du membre
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1463
Enregistré le : 13 févr. 2007 20:39
Localisation : Bordeaux

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

Message par dizzy33 »

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 du membre
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4642
Enregistré le : 31 oct. 2006 15:08
Localisation : 67310 Westhoffen
Contact :

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

Message par pir2 »

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 du membre
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1463
Enregistré le : 13 févr. 2007 20:39
Localisation : Bordeaux

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

Message par dizzy33 »

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 du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

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

Message par bernouilli92 »

Et si tu lances la commande en direct à partir d’une fenêtre cmd ?
dizzy33 a écrit : 19 déc. 2019 18: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.
Modifié en dernier par bernouilli92 le 19 déc. 2019 18:46, modifié 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1463
Enregistré le : 13 févr. 2007 20:39
Localisation : Bordeaux

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

Message par dizzy33 »

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 du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

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

Message par bernouilli92 »

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 du membre
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1463
Enregistré le : 13 févr. 2007 20:39
Localisation : Bordeaux

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

Message par dizzy33 »

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 du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

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

Message par gege »

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 du membre
dizzy33
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1463
Enregistré le : 13 févr. 2007 20:39
Localisation : Bordeaux

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

Message par dizzy33 »

Effectivement une autre solution ...
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.
Nikass
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 941
Enregistré le : 12 nov. 2015 22:00
Localisation : trouducul du 31 et 34 aux lunes bleues

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

Message par Nikass »

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

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