Envoyer une selection de fichiers en argument de script

Dans cet article, nous allons voir comment lancer des scripts facilement sur une selection de fichiers.
via Glisser-déposer, ou mieux, via le menu contextuel envoyer-vers.

Exemple de script

Pour un exemple simple, le script suivant est en langage batch (plateforme windows).
Mais on pourrait très bien utiliser un script python avec sys.argv ou argparse

Exemple : Redimensionner avec ffmpeg tous les fichiers vidéo passés en argument en 720p.

1
2
3
4
5
:loop
if "%~1"=="" goto :eof
ffmpeg -i %1 -vf "scale=1280:-1" "%~dp1%~n1_720.mp4"
shift
goto loop

Le code doit être sauvé dans un fichier to_720.bat

Explication de la commande:

La commande va être lancée sur le premier argument, puis le suivant (grâce a shift), et ce jusqu’à épuisement de tous les arguments.

%~1 : l’argument tel-quel, donc le chemin complet du fichier passé

%~dp1 : Le chemin du repertoire contenant le fichier passé en argument

%~n1 : “stem” du fichier passé en argument (nom sans extension), l’extension d’origine peut-être placée avec %~x1

Note: Utiliser la combinaison %~dp1%~n1_720.mp4 permet de mettre le fichier de sortie dans le même répertoire que le fichier passé en argument Si on utilisais seulement le nom pour la sotrie (%~n1_720.mp4), la destination correspondrait au dossier contenant le script “bat” (working directory).

Usage

Glisser-déposer

Tel quels, vous pouvez directement l’utiliser en selectionnant vos fichiers puis en faisant un glisser déposer sur le fichier .bat.

Mais il faut avoir le script rapidement accessible, donc ouvrir le dossier le contenant, etc… bref, fastidieux, d’où l’intérêt du menu contextuel développé dans le point suivant

Mettre le fichier bat (ou un raccourci vers le fichier bat) dans le dossier SendTo de windows.

Pour ouvrir le dossier, ouvrer Exécuter (tapez “exec” dans la recherche windows lancer la fenêtre), puis entrez et validez la commande suivanter: shell:sendto.

Un fois le fichier ou raccourci placé dans SendTo, on peut envoyer toute une sélection de fichiers directement en traitement via clic-droit > envoyer vers > script_maison.bat :thumbsup: