Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1545 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2286598
korner
Posté le 17-08-2016 à 14:56:21  profilanswer
 

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
mood
Publicité
Posté le 17-08-2016 à 14:56:21  profilanswer
 

n°2286780
TotalRecal​l
Posté le 22-08-2016 à 14:56:02  profilanswer
 

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
n°2286781
korner
Posté le 22-08-2016 à 15:25:17  profilanswer
 

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
n°2286782
korner
Posté le 22-08-2016 à 15:30:49  profilanswer
 

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
n°2286783
TotalRecal​l
Posté le 22-08-2016 à 15:31:29  profilanswer
 

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
n°2286784
korner
Posté le 22-08-2016 à 16:10:56  profilanswer
 

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
n°2286785
TotalRecal​l
Posté le 22-08-2016 à 16:24:42  profilanswer
 

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


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2286786
korner
Posté le 22-08-2016 à 16:43:44  profilanswer
 

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
n°2286787
TotalRecal​l
Posté le 22-08-2016 à 16:58:51  profilanswer
 

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
n°2286789
TotalRecal​l
Posté le 22-08-2016 à 16:59:22  profilanswer
 

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
mood
Publicité
Posté le 22-08-2016 à 16:59:22  profilanswer
 

n°2286790
korner
Posté le 22-08-2016 à 16:59:45  profilanswer
 

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
n°2286791
TotalRecal​l
Posté le 22-08-2016 à 17:03:07  profilanswer
 

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
n°2286792
korner
Posté le 22-08-2016 à 17:08:58  profilanswer
 

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
n°2286794
korner
Posté le 22-08-2016 à 17:34:56  profilanswer
 

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
n°2286795
TotalRecal​l
Posté le 22-08-2016 à 18:12:02  profilanswer
 

: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
n°2286797
korner
Posté le 22-08-2016 à 19:31:36  profilanswer
 

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


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 

Sujets relatifs
Divi : utiliser le Builder avec WooCommerce[BATCH] récupérer la liste des compilateurs
[RESOLU] [wordpress] protéger des fichier HTMLRécupérer le dernier "bloc" de chaque ligne d'un fichier
Copie de fichier dans des sous répertoires aléatoires multiples[récupération de fichier]
Comment exporter une feuille dans un nouveau fichier[VBA] Travail sur fichier excel en arrière plan
Comment utiliser ce script ? "question de débutant"Lire un fichier data [resolu, merci]
Plus de sujets relatifs à : [BATCH] utiliser %%A et ignorer l'extension fichier (RESOLU)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR