[Batch] problème d'echo désactivé

Bonjour tout le monde,

Je travaille dans la vidéo, et j'aimerais avec ffmpeg réaliser du traitement par lot de vidéo et photo.

Pour cela j'essaye de comprendre le langage batch mais je rencontre quelque difficulté.

je voudrais modifier la variable du for pour supprimer l’extension du fichier et la remplacer par une autre. xxxxx.mp4 vers xxxxx.mov par exemple.

Pour mieux comprend je fais un test avec un simple echo pour commencer.

Ce code m'affiche tous les fichiers trouvé dans le répertoire :

@echo off

for %%a in ("*.jpg") do (

ECHO %%a

)
pause

Maintenant j'essaye d'afficher une variable que je créé :

@echo off

for %%a in ("*.jpg") do (

ECHO %%a

set test=1234
echo %test%

)
pause

mais j'ai comme retour un "commande echo désactivée" et je ne comprend pas pourquoi.

Une fois ce problème résolu, j'aimerais utiliser la fonction %test:~0,-2% pour ne pas afficher les deux dernier caractère (le but à terme est de supprimer les 4 derniers caractères pour les remplacer par une autre extension.

Quelqu'un pourrait m'indiquer ce qui cloche ?

Merci,
Clément

Configuration: Windows / Firefox 68.0

3 réponses

  1. Si quelqu'un peut m'expliquer pourquoi ce code ne fonctionne pas je suis preneur (retourne "commande echo désactivée" :

    @echo off

    for %%a in ("*.jpg") do (

    ECHO %%a

    set test=1234
    echo %test%

    )
    pause
    1. Contributeur
      hello
      @echo off
      setlocal enabledelayedexpansion
      for %%a in ("*.jpg") do (
      ECHO %%a
      set test=1234
      echo !test!
      )
      pause
    2. Ok merci :)
      Je vais tester ça et essayer de comprendre