Nom de fichier et caractères spéciaux.

Résolu
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   -  
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   -
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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   Statut Membre Dernière intervention   209
 
@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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   209
 
Ok : chapeau ' ^ '
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
pourquoi les ! au lieu de % ?!!
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention  
 
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