Forum Clubic

Batch simple mais qui ne marche pas

Bonjour à tous !

Alors voilà, je suis en train de créer un tout petit fichier batch mais pour je ne sais quelle raison, il plante !

Voici ce que je souhaite faire :
J’ai un executable (ffmpeg.exe, il recevra une ligne de commande) et mon fichier batch (Compresser.bat), le but est simplement avec un drag & drop de lancer l’encodage d’une vidéo, ca marche très bien, a part si j’ajoute une condition particuliere.

Ce fichier marche :

@echo off

set dir=%~dp0
set exe="%dir%ffmpeg.exe"
set out="%dir%out.avi"
set in=%1

if exist %out% echo ERREUR : Le fichier out.avi est present (surement une video precedement compressee), supprimez-le puis recommencez... & pause & exit

%exe% -i %in% -acodec libmp3lame -ar 44100 -ab 128k -ac 2 -vcodec copy -threads 2 -y %out%

pause & exit

Ce fichier ne marche pas :

@echo off

set dir=%~dp0
set exe="%dir%ffmpeg.exe"
set out="%dir%out.avi"
set in=%1

if exist %out% echo ERREUR : Le fichier out.avi est present (surement une video precedement compressee), 

supprimez-le puis recommencez... & pause & exit

if "%1"=="" echo Glissez/Deposez votre fichier .AVI sur Compresser.bat & pause & exit

%exe% -i %in% -acodec libmp3lame -ar 44100 -ab 128k -ac 2 -vcodec copy -threads 2 -y %out%

pause & exit

Donc en gros, c’est le if “%1”=="" qui faire foirer.

Quelqu’un aurait une piste ?

Merci d’avance

Je doute que ce soit le drag & drop, et à tout hasard, tu as testé ça :

if ".%1"=="." (
  echo Glissez/Deposez votre fichier .AVI sur Compresser.bat 
  pause 
  exit
)

merci pour ta réponse mais meme en essayant comme ca ca ne donne rien…

Et avec %in% ?

A ta place, je testerai en executant le batch sans passer par le glisser déposer, et en affichant les commandes jouées (vire le @echo OFF si tu en as mis un)

C’est peut être un problème dû à l’éditeur clubic, mais il semble que dans le deuxième cas

if exist %out% echo ERREUR : Le fichier out.avi est present (surement une video precedement compressee), 

supprimez-le puis recommencez... & pause & exit

soit écrit sur deux lignes. Dans ce cas, ça ne peut pas marcher, mais tu devrais avoir un message d’erreur.
Retire tous tes exit dans un premier temps pour être sûr de bien les voir tous.