EnableDelayedExpansion et "!" dans les chemins de fichier [batch] - Shell/Batch - Programmation
Marsh Posté le 12-05-2006 à 14:49:58
ReplyMarsh Posté le 12-05-2006 à 15:01:43
wackevat a écrit : Bah tu n'as qu'à pas utiliser cette option : appeler une fonction à la place. |
hum, pourrais-tu être plus explicite ?
Utiliser une fonction à la place de quoi ?
merci
Marsh Posté le 12-05-2006 à 16:43:50
... à la place de cette option
Fais une recherche dans le forum, j'en ai parlé à moult reprises.
Marsh Posté le 12-05-2006 à 21:22:17
Merci de répondre rapidement nglechau.
J'avais déjà fait une recherche avant de poster avec "EnableDelayedExpansion", il y a 6 messages et je n'y trouve hélas pas de solution pour mon problème. Depuis le temps que je bidouille avec les batchs, c'est la 1° fois que j'en viens à écrire sur un forum, je trouve habituellement mes réponses en cherchant sur le net, parfois après de longues heures de lecture Si j'en viens à poser la question ici, c'est bien parce que cette fois, je ne trouve pas
Tu parles de remplacer l'utilisation de cette option par une fonction, mais je ne vois pas ce qui pourrait la remplacer.
Si tu as un lien vers un autre message qui en parle, je suis preneur. Sinon je continuerai à chercher
Merci.
Marsh Posté le 12-05-2006 à 21:36:35
Je te fais un exemple rapide :
Code :
|
process est donc une fonction (procédure). Elle est appelée par la commande call.
N'oublie pas un endlocal après un setlocal.
Sinon, pour la recherche, essaie plutôt avec expansion retardée blabla... comme mots-clés
Marsh Posté le 12-05-2006 à 07:12:40
Bonjour,
j'ai écrit un script batch sous Windows XP SP2 qui parcours une arborescence de dossiers à la recherche de musiques (mp3, wav, etc) afin d'en reporter le chemin d'accès dans des fichiers HTML. Le but est de générer des fichiers HTML qui permettent d'afficher un classement par ordre alphabétique des albums, avec affichage de la jaquette du CD (à partir de l'image folder.jpg placée dans chaque dossier) et de lancer la lecture de l'album par un clic dessus. Un autre script batch génère au préalable des playlists.m3u pour chaque album.
Voilà pour la présentation
Cà fonctionne plutôt bien, mais je rencontre un petit problème.
Comme je fais évoluer des variables dans des boucles FOR, j'utilise
Le problème est que, si un nom de dossier ou de fichier contient le caractère "!", le batch ne le reconnaît pas, voir fait sauter une partie de la ligne à écrire dans le fichier HTML.
Donc, la question : peut-on remédier à ce problème ?
Je vous donne un petit script simplifié qui met le problème en évidence. Pour le tester : dans C:\ créez un dossier "test" puis un sous-dossier "hehe !". Vous verrez que tant qu'on ne retire pas le "setLocal" du batch, le "!" n'est pas reconnu.
Personnellement, je n'utilise pas de caractères spéciaux dans mes noms de fichier ou dossier, mais hélas je suis un des derniers irréductibles dans ce cas (comme quelques uns d'entre vous sûrement) et j'aimerai bien pouvoir résoudre ce problème, afin que ce petit soft puisse fonctionner chez toutes les personnes qui voudront s'en servir.
D'ailleurs, si çà vous intéresse, je le mettrai bientôt à disposition. L'idée de faire çà n'est pas de moi, mais je dois dire qu'àprès l'avoir fait, je l'ai adopté
Merci de votre aide