Nom de fichier et caractères spéciaux.

Résolu/Fermé
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
- Modifié le 25 déc. 2017 à 19:34
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
- 30 déc. 2017 à 16:25
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.
A voir également:

2 réponses

barnabe0057
Messages postés
13866
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 juin 2022
4 802
25 déc. 2017 à 20:24
Bonjour,

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

0
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
207
25 déc. 2017 à 22:33
@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
0
barnabe0057
Messages postés
13866
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 juin 2022
4 802 > Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019

Modifié le 26 déc. 2017 à 01:22
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
0
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
207
26 déc. 2017 à 19:26
Ok : chapeau ' ^ '
0
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
207
26 déc. 2017 à 19:27
pourquoi les ! au lieu de % ?!!
0
barnabe0057
Messages postés
13866
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 juin 2022
4 802 > Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019

Modifié le 26 déc. 2017 à 20:10
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/
0