Retour au blog

Exécuter une commande shell quand un fichier est ajouté (Windows et Mac)

Exécuter une commande shell automatiquement quand un fichier arrive dans un dossier, sous Windows et Mac. Sans Planificateur de tâches, sans cron, sans AppleScript.

16 juin 2026
File Arbor Team

Exécuter une commande quand un fichier apparaît dans un dossier, c'était jusqu'ici une affaire de Planificateur de tâches sous Windows, de cron ou d'AppleScript sous Mac, ou de Hazel si vous étiez déjà sur Mac. File Arbor le fait avec une règle : choisissez le dossier, ciblez les fichiers, sélectionnez Exécuter une commande, et votre script se lance une fois par fichier correspondant — de la même manière sous Windows et macOS. C'est une fonctionnalité Pro, ajoutée dans la version 1.1.0.

Ce guide montre comment la configurer, quelles variables vous obtenez, comment tester une commande avant de lui faire confiance, et quelques recettes à reprendre telles quelles.

Pourquoi c'est plus compliqué que ça ne devrait l'être

Le besoin est simple : « quand un fichier arrive ici, fais quelque chose avec ». L'outillage, lui, l'est rarement.

Sous macOS, Hazel propose l'exécution de scripts shell comme action de règle depuis des années. C'est excellent — et réservé au Mac. Si vous êtes sous Windows, Hazel n'est pas une option et ne le sera jamais.

Les solutions intégrées sont laborieuses. Le Planificateur de tâches de Windows peut lancer un fichier batch à intervalle régulier, mais il surveille l'horloge, pas le dossier, et c'est à vous d'écrire la logique de correspondance en forfiles ou en PowerShell. Sous macOS, les actions de dossier et cron fonctionnent, mais imposent d'assembler de l'AppleScript ou de la colle shell et de le déboguer dans la Console. Aucune de ces approches ne vous donne la liste des fichiers traités ni ce que chaque commande a affiché.

Ce que la plupart des gens veulent vraiment, c'est une règle : cibler un fichier, lancer une commande, voir ce qui s'est passé. C'est le manque que comble l'action Exécuter une commande de File Arbor, sur les deux plateformes.

Ce que fait l'action Exécuter une commande

Une règle File Arbor est un couple SI/ALORS. Le côté SI cible les fichiers par extension, motif de nom, regex complète, taille ou ancienneté. Le côté ALORS, c'est l'action. Exécuter une commande est l'une de ces actions, aux côtés de déplacer, renommer, mettre à la corbeille et supprimer définitivement.

Quand un fichier correspond (lors d'une exécution manuelle, selon un planning ou dès qu'il arrive dans un dossier surveillé), File Arbor exécute votre commande une fois pour ce fichier. Sous Windows, elle passe par le shell système : la syntaxe batch, PowerShell et tout ce qui se trouve dans votre PATH fonctionnent. Sous macOS, elle passe aussi par le shell, donc vos outils en ligne de commande habituels sont disponibles. Même modèle de règle, même éditeur, les deux plateformes.

Exécuter une commande est une fonctionnalité Pro. Si vous êtes en version gratuite, vous pouvez la débloquer avec une licence Pro — achat unique, garantie de remboursement de 30 jours.

Comment exécuter une commande quand un fichier est ajouté

Voici la configuration complète. Elle prend environ deux minutes.

  1. Ajoutez le dossier à surveiller. Cliquez sur Ajouter un dossier et choisissez l'endroit où les fichiers arrivent — Downloads, un dossier de projet, le répertoire de sortie d'un scanner, ce qui correspond à votre flux de travail.
  2. Créez une règle et définissez les conditions de correspondance. Ajoutez une règle et définissez le côté SI. Correspondance par extension (.md), motif de nom, regex comme ^invoice_\d{4}\.pdf$, seuil de taille ou ancienneté. Seuls les fichiers correspondants déclenchent la commande.
  3. Choisissez Exécuter une commande comme action. Du côté ALORS, sélectionnez Exécuter une commande et saisissez votre commande. Utilisez les variables ci-dessous partout où vous avez besoin du chemin ou du nom du fichier.
  4. Testez la commande sur un fichier d'exemple. Cliquez sur Test. File Arbor exécute la commande une fois sur un échantillon et affiche le code de sortie, la sortie et la durée. Corrigez-la ici, avant qu'elle ne s'exécute sans surveillance.
  5. Enregistrez la règle et activez le Mode Auto. Enregistrez-la, puis activez le Mode Auto pour qu'elle s'exécute en temps réel à mesure que les fichiers arrivent. Vous pouvez aussi lancer les règles manuellement ou selon un planning.

C'est toute la boucle. Pas de fichier batch, pas de tâche planifiée, pas de fichiers de script à maintenir séparément de la règle.

Les variables disponibles

Trois variables sont disponibles à l'intérieur d'une commande :

  • {filePath} — le chemin complet vers le fichier correspondant
  • {fileName} — uniquement le nom du fichier, avec son extension
  • {folder} — le dossier dans lequel se trouve le fichier

File Arbor les met entre guillemets pour vous : les chemins contenant des espaces fonctionnent sans que vous ayez à entourer quoi que ce soit de guillemets. Vous écrivez {filePath}, pas "{filePath}".

Testez avant de faire confiance

Une commande qui s'exécute sans surveillance n'a d'utilité que si vous savez qu'elle fonctionne. Deux choses rendent cela sûr.

Le bouton Test exécute votre commande une fois sur un fichier d'exemple et rapporte le code de sortie, la sortie et la durée. Vous voyez exactement ce que fait la commande avant d'enregistrer la règle.

Le panneau Exécutions de commandes consigne chaque exécution réelle — la commande, le fichier, le code de sortie et la sortie complète. Quand quelque chose échoue à 3 h du matin, vous ne devinez pas. La sortie est là quand vous vérifiez.

Des exemples concrets à reprendre

Committer automatiquement des notes dans un dépôt git. Déposez un fichier Markdown dans un dossier de notes et faites-le committer automatiquement.

  • Surveiller : C:\Projects\notes (ou ~/Projects/notes sous Mac)
  • Condition : l'extension est .md
  • Commande : git -C {folder} add {fileName} && git -C {folder} commit -m "Add {fileName}"

Compresser une vidéo dès qu'elle arrive. Réencodez les enregistrements d'écran pour gagner de la place.

  • Condition : l'extension est .mov
  • Commande : ffmpeg -i {filePath} -vcodec libx265 -crf 28 {folder}/compressed-{fileName}

Envoyer les exports terminés ailleurs. Poussez un rendu vers un serveur de sauvegarde avec rsync ou scp.

  • Condition : le nom commence par export_
  • Commande : rsync {filePath} backup:/media/incoming/

Vous prévenir quand un fichier précis arrive. Déclenchez une notification de bureau ou un webhook pour savoir qu'une facture ou un rapport est arrivé.

Le schéma est toujours le même : ciblez le fichier, lancez l'outil que vous utilisez déjà. File Arbor est le déclencheur et le sélecteur de fichiers ; votre commande fait le travail.

Comparaison avec les scripts shell de Hazel

Si vous arrivez ici depuis un flux Hazel, la correspondance est directe. L'action « run shell script » de Hazel et l'action Exécuter une commande de File Arbor lancent toutes deux une commande par fichier correspondant, avec accès au chemin du fichier. La différence, c'est la portée : Hazel ne fonctionne que sous macOS, tandis que File Arbor exécute la même règle sous Windows et Mac. Pour un comparatif détaillé, voir File Arbor face à Hazel.

Ce que File Arbor ne reproduit pas, ce sont les points d'ancrage spécifiques à macOS de Hazel — AppleScript et les conditions sur les métadonnées Spotlight. Si votre automatisation en dépend, Hazel garde un avantage sur le Mac. Pour exécuter des commandes et des scripts sur des fichiers, les deux sont à égalité.

Limites et sécurité

Quelques points à connaître avant de mettre en place quelque chose d'important :

  • Une exécution par fichier. Un fichier correspondant déclenche la commande une fois, pas en boucle.
  • Délai de 30 secondes. Les commandes expirent après 30 secondes par défaut : un script bloqué ne peut donc pas paralyser vos autres règles.
  • Absente de la version Microsoft Store. Les règles du Store empêchent les applications de lancer des commandes arbitraires : la version Store est donc livrée sans Exécuter une commande. Le téléchargement direct l'inclut.

Commencez par une seule commande

Choisissez une chose répétitive que vous faites à la main sur vos fichiers — un commit, une compression, un envoi — et transformez-la en une seule règle. Téléchargez File Arbor et commencez avec la version gratuite, ou lisez tout ce qu'apporte la 1.1.0. Nouveau sur l'application ? Le guide de démarrage configure votre première règle en cinq minutes environ.

FAQ

File Arbor peut-il exécuter des scripts shell comme Hazel ?

Oui. L'action Exécuter une commande de File Arbor lance n'importe quelle commande ou script shell une fois par fichier correspondant, avec les variables {filePath}, {fileName} et {folder}. Elle couvre le même terrain que l'action de script shell de Hazel — et elle fonctionne sous Windows, ce que Hazel ne fait pas. C'est une fonctionnalité Pro.

L'exécution de commandes sur les événements de fichier fonctionne-t-elle sous Windows ?

Oui. File Arbor exécute des commandes sous Windows comme sous macOS. Sous Windows, elles passent par le shell système : les commandes batch, PowerShell et tout outil présent dans votre PATH fonctionnent. Aucun besoin du Planificateur de tâches ni d'un fichier batch séparé.

L'action Exécuter une commande est-elle disponible dans la version gratuite ?

Non. Exécuter une commande est une fonctionnalité Pro : un achat unique à 24,99 $ avec 30 jours de garantie de remboursement. La version gratuite inclut tout de même les actions déplacer, renommer et mettre à la corbeille.

Pourquoi Exécuter une commande n'est-il pas dans la version Microsoft Store ?

Les règles du Microsoft Store interdisent aux applications de lancer des commandes arbitraires : la version Store est donc livrée sans l'action Exécuter une commande. Téléchargez File Arbor directement depuis filearbor.com pour en disposer. Toutes les autres fonctionnalités sont identiques entre les deux versions.

Que se passe-t-il si ma commande se bloque ou échoue ?

Les commandes expirent après 30 secondes par défaut : un script bloqué ne peut donc pas paralyser vos règles. Chaque exécution est consignée dans le panneau Exécutions de commandes avec son code de sortie et sa sortie complète, si bien qu'un échec à 3 h du matin vous attend avec tous les détails au moment où vous vérifiez.