Nom de fichier et caractères spéciaux. [Résolu/Fermé]

Signaler
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
-
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
-
Bonjour,

Ayant trouver un bout de code ms-dos pour convertir un m4u en mp3, mais voilà qu'une masse d’exception se dévoile dans l’exécution des commandes Dos. Un exemple les ' ou les , ou encore le & de "Kool & The Gang".
En fait je ne peux pas les renommer comme il faut lors de la conversion.

Il me faudrait une idée pour pouvoir transformer les & en and ...
visiblement
 SET tmp= %tfile:&= and% 
ne fonctionne pas .

Merci de votre lecture.

2 réponses

Messages postés
12636
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 juillet 2020
3 334
Bonjour,

Donne le contenu de ton script de conversion, je vais voir ce que je peux faire.

Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
@echo off

set /a count = 0

FOR %%G IN (*.m4a) DO (CALL :SUB_VLC "%%G")
PAUSE
GOTO :eof

:SUB_VLC
SET /a count = %count% + 1
SET tfile= %~n1
SET Txt= %count% - %tfile%
SET tmp= %tfile:'=%
SET tmp= %tmp:,=%
SET tmp= %tmp:/&= and%
echo %Txt%
if not exist ".\mp3\%tmp%.mp3" (
echo file doesn't exist
CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc" -I dummy -vvv %1 --sout=#transcode{acodec="mpga",ab="512","channels=2",samplerate="44100"}:standard{access="file",mux="mpeg1",dst=".\mp3\%tmp%.mp3"} vlc://quit
)


GOTO :eof

:eof
Messages postés
12636
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 juillet 2020
3 334 >
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019

J'ai fait quelques corrections, essaie comme ça :

@echo off
title Convertisseur M4A vers MP3
setlocal enableextensions enabledelayedexpansion
color 79

set /a count=0

for %%G in (*.m4a) do (call :SUB_VLC "%%~G")

echo. & pause
exit /B

:SUB_VLC
set /a count+=1

set "file=%~n1"
set nom=!file:^&=and!

echo. & echo Conversion de la liste #!count! ==^>^> "%~nx1"

if not exist ".\mp3\!nom!.mp3" (
call "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy -vvv "%~1" --sout=#transcode{acodec="mpga",ab="512","channels=2",samplerate="44100"}:standard{access="file",mux="mpeg1",dst=".\mp3\!nom!.mp3"} vlc://quit
)

goto :eof

rem
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
Ok : chapeau ' ^ '
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
pourquoi les ! au lieu de % ?!!
Messages postés
12636
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 juillet 2020
3 334 >
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019

pourquoi les ! au lieu de % ?!!
pour retarder l'expansion des variables, sinon les variables sont remplacées par leur valeur avant l'exécution du script, ce qui peut poser problème quand ta variable doit changer de valeur durant le script

https://www.developpez.net/forums/d697396/general-developpement/programmation-systeme/windows/scripts-batch/explication-l-expansion-retardee/
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
Il me faut aussi enlever la fin du nom ...
avec comme séparateur une parenthèse
faut il faire une boucle ou avec une instruction Find on peut avoir la position du séparateur ?
Messages postés
12636
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 juillet 2020
3 334 >
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019

Dans ce cas précis, choisir ( comme délimiteur n'est pas judicieux, il vaut mieux choisir _
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
Impeccable ...
Merci
Messages postés
12636
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 juillet 2020
3 334
Je ne peux pas t'aider, je n'ai pas de fichier .m4a pour faire des tests.
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
Rien a voir avec la commande c'est les propriétés du fichier qui ne sont pas implémenté avec la commande :
la longueur
la vitesse de transmission
Messages postés
2313
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
170
Voilà pour finir changement du Codec et du Multiplexeur de sortie.
Vlc/Options en francais
Merci
Une interrogation sur la vitesse de transmission ab 192 ou 168 !!!
Call "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%a" -I dummy -vvv --sout=#transcode{acodec=mp3,ab=192}:std{access=file,mux=raw,dst="%~na.mp3"} vlc://quit