[BATCH] utiliser %%A et ignorer l'extension fichier (RESOLU)

utiliser %%A et ignorer l'extension fichier (RESOLU) [BATCH] - Shell/Batch - Programmation

Marsh Posté le 17-08-2016 à 14:56:21    

Bonjour,
 
(alerte noob déjà  :whistle: )
 
je suis en train de faire un petit batch pour m'aider à compresser des vidéos "en masse".
je drag&drop sur le batch, tout fonctionne bien.
 
le code :
 

Code :
  1. FOR %%A IN (%*) DO (
  2. HandBrakeCLI.exe -i "%%A" -o "%%A"_comp.mp4 -e x264 -q 20 -B 160
  3. ECHO %%A
  4. )


 
seul souci, pour un fichier qui s'appelle "toto.avi", je vais avoir en sortie du batch "toto.avi_comp.mp4"
alors que j'aimerais avoir "toto_comp.mp4"
 
c'est possible ?
 
merci  :jap:


Message édité par korner le 22-08-2016 à 17:35:51

---------------
galerie photo | thingiverse
Reply

Marsh Posté le 17-08-2016 à 14:56:21   

Reply

Marsh Posté le 22-08-2016 à 14:56:02    

Dans ton for après la génération du fichier tu peux ajouter un truc du genre :
  set "name=%%A"
  ren "!name!" "!name:.avi_comp.mp4=_comp.mp4!"
Ca renommera les fichiers selon la règle donnée.
Note :
- Il est aussi possible de faire ça directement dans la valeur transmise à HandbrakeCLI plutôt qu'après via un REN
- la syntaxe n'est sans doute pas exacte (faut tester/vérifier la doc) mais ça te donne une idée du principe et ça te permet de chercher sur le net.
- Plus personne ne fait de .bat aujourd'hui voyons :d


Message édité par TotalRecall le 22-08-2016 à 14:56:52

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 15:25:17    

merci ! j'ai opté pour le rename par fainéantise :o

 

par contre ça ne fonctionne pas :( une idée ?

 

http://i.imgur.com/1LHMKRC.png

 

et si c'est super pratique les bats dans ce cas précis, j'ai juste à drag&drop un fichier vidéo dessus et hop, ça me le compresse comme je veux (plusieurs bats de créés) :love:

 

edit : ah oui mais c'est pas toujours des .avi en input [:ddr555]
edit 2 : j'ai tenté avec une "*" mais fail :o


Message édité par korner le 22-08-2016 à 15:27:40

---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 15:30:49    

même en mettant

 
Code :
  1. set "name=%%A"
  2. ren "!name!" "!name:.mp4_comp.mp4=_comp.mp4!"
 

ça passe pas :o

 

http://i.imgur.com/wh92RVd.png

 

edit : ah mais je l'ai mis en dehors du FOR ... [:prozac]
j'y retourne :o

 

edit 2 : marche pas non plus :o

 

http://i.imgur.com/OStd0Sm.png


Message édité par korner le 22-08-2016 à 15:34:47

---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 15:31:29    

Euh oui c'est tout à fait logique que ça foire. Ma faute :D
En fait quand tu fais  set "name=%%A", "%A" contient le nom "original" du fichier et pas la version générée par ton exe, qui contient "avi_comp" dans le nom donc forcément il ne trouve pas le fichier.
 
Tu peux arranger ça en refaisant une seconde boucle pour le renommage
Qqch comme  
 
    FOR %%B IN (%*.avi_comp.mp4) DO (
  set "name=%%B"
  ren "!name!" "!name:.avi_comp.mp4=_comp.mp4!"
    ECHO %%B
    )
 
Toujours sans la moindre plus petite garantie, à tester à tes risques et périls :D
 
C'est la syntaxe .bat qui est old school, pas le principe. Tu peux aussi faire du VBS ou du Powershell par exemple. Mais on va s'en sortir en .bat. Si je raconte trop de conneries il y aura bien quelqu'un pour te sortir un truc qui fonctionne.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 16:10:56    

et si le "avi" peut varier ? genre mp4, mpg ou mpeg
 
je suis déjà une quiche avec les bats, et je connais peanuts en VBS et powershell :D
 
(merci soit dit en passant :jap: )


---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 16:24:42    

essaye en mettant * au lieu de avi pour cette partie là.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 16:43:44    

http://i.imgur.com/FpZs277.png
 
echec (et avec avi à la place de * non plus d'ailleurs)
oui j'ai renommé le fichier en .avi pour le test :o


---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 16:58:51    

Désolé je n'ai pas envie de me pencher sur la doc cryptique de REN et des bidouillages de variable en batch alors je passe la main à quelqu'un qui sait :o


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 16:59:22    

Par contre comme j'étais parti sur utiliser ta boucle je me demande si on n'a pas compliqué inutilement [:slackerbitch]

 

Comme tous tes fichiers à renommer sont de la forme :
xxx.xxx_comp.mp4
Je me demande si un simple :

 

REN *.avi_comp.mp4 *_comp.mp4

 

Ne suffirait pas sans boucle ni rien.

 

edit : je viens d'essayer ça ne marche pas [:mareek]
Ca fait un truc étrange : il semble voir le fichier (sinon REN te dit "fichier introuvable" ) mais le nom ne change pas.
Je viens de me rappeler pourquoi j'aime pas les batches, je lache l'affaire :o


Message édité par TotalRecall le 22-08-2016 à 17:02:13

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 16:59:22   

Reply

Marsh Posté le 22-08-2016 à 16:59:45    

cet abandon :o

 

merci quand même [:ojap]

 

edit : oui j'étais en train de chercher aussi :D je test :jap:


Message édité par korner le 22-08-2016 à 17:00:15

---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 17:03:07    

Tu as vu mon message après mon abandon et avant mon second abandon ? :o


Message édité par TotalRecall le 22-08-2016 à 17:03:20

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 17:08:58    

ouais mes tests ne sont pas concluant non plus :/
 
ok pour le second abandon, mais je vais continuer à creuser en regardant la doc du REN ou autre :o
 
merci


---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 17:34:56    

trouvé, technique de gros porc :o

 
Code :
  1. REN "*.*_comp.mp4" "????????????????????????????????????????????????????????????_comp.mp4"


Message édité par korner le 22-08-2016 à 17:35:12

---------------
galerie photo | thingiverse
Reply

Marsh Posté le 22-08-2016 à 18:12:02    

:fouyaya:
Pourtant l'étoile est autorisée comme wildcard aussi dans la partie de droite, je ne vois pas pourquoi il faut des ? à la place.  
Mais l'important c'est que ça marche et que ça ne bousille rien :o


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-08-2016 à 19:31:36    

"all original files deleted" WAAAAAAATTTTTTT ?!!
 
:o


---------------
galerie photo | thingiverse
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed