Nom de fichier et caractères spéciaux.

Résolu/Fermé
Fallentree Messages postés 2309 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 2309 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 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
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 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
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 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918 > Fallentree Messages postés 2309 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 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
26 déc. 2017 à 19:26
Ok : chapeau ' ^ '
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
26 déc. 2017 à 19:27
pourquoi les ! au lieu de % ?!!
0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918 > Fallentree Messages postés 2309 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