utiliser %%A et ignorer l'extension fichier (RESOLU) [BATCH] - Shell/Batch - Programmation
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
Marsh Posté le 22-08-2016 à 15:25:17
merci ! j'ai opté pour le rename par fainéantise
par contre ça ne fonctionne pas une idée ?
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)
edit : ah oui mais c'est pas toujours des .avi en input
edit 2 : j'ai tenté avec une "*" mais fail
Marsh Posté le 22-08-2016 à 15:30:49
même en mettant
Code :
|
ça passe pas
edit : ah mais je l'ai mis en dehors du FOR ...
j'y retourne
edit 2 : marche pas non plus
Marsh Posté le 22-08-2016 à 15:31:29
Euh oui c'est tout à fait logique que ça foire. Ma faute
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
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.
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
(merci soit dit en passant )
Marsh Posté le 22-08-2016 à 16:24:42
ReplyMarsh Posté le 22-08-2016 à 16:43:44
echec (et avec avi à la place de * non plus d'ailleurs)
oui j'ai renommé le fichier en .avi pour le test
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
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
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
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
Marsh Posté le 22-08-2016 à 16:59:45
cet abandon
merci quand même
edit : oui j'étais en train de chercher aussi je test
Marsh Posté le 22-08-2016 à 17:03:07
Tu as vu mon message après mon abandon et avant mon second abandon ?
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
merci
Marsh Posté le 22-08-2016 à 17:34:56
trouvé, technique de gros porc
Code :
|
Marsh Posté le 22-08-2016 à 18:12:02
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
Marsh Posté le 22-08-2016 à 19:31:36
Reply
Marsh Posté le 17-08-2016 à 14:56:21
Bonjour,
(alerte noob déjà )
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 :
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
Message édité par korner le 22-08-2016 à 17:35:51
---------------
galerie photo | thingiverse