Je dois configurer une sorte de script sur ma machine Vista afin que, chaque fois qu'un fichier est ajouté à un dossier particulier, il déclenche automatiquement un processus d'arrière-plan qui fonctionne sur le fichier. (Le processus d'arrière-plan est simplement un utilitaire de ligne de commande qui prend le nom du fichier en tant qu'argument, ainsi que d'autres options prédéfinies.)
Pour ce faire, j'aimerais utiliser des fonctionnalités Windows natives, si possible, pour des raisons de performances et de maintenance. J'ai envisagé d'utiliser le Planificateur de tâches, mais après avoir parcouru le système de déclenchement pendant un moment, je n'ai pas été en mesure de le comprendre, et je ne suis même pas sûr qu'il soit capable de faire ce dont j'ai besoin.
J'apprécierais toutes les suggestions. Merci!
la source
Réponses:
Au travail, nous utilisons Powershell pour surveiller les dossiers.
Il peut être utilisé depuis Windows Vista (les logiciels .NET et PowerShell sont préinstallés) sans aucun outil supplémentaire.
Ce script surveille un certain dossier et écrit un fichier journal. Vous pouvez remplacer l'action et faire ce que vous voulez, par exemple appeler un outil externe
Exemple de fichier journal
StartMonitoring.ps1
Comment utiliser
$watcher.Path = "D:\source"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
StartMonitoring.ps1
Pour arrêter la surveillance, il suffit de fermer la fenêtre de PowerShell.
Lectures complémentaires
la source
StartWatching.ps1
fenêtre pour arrêter la surveillance. Le second script ne fonctionne que si vous incluez dans votre premier script pour enregistrer les variables$created
,$changed
,$deleted
ou$renamed
Vous semblez être sur les bonnes lignes - vous pouvez utiliser le planificateur de tâches pour exécuter régulièrement un fichier .bat ou .cmd. Ce fichier peut commencer par une ligne pour vérifier l'existence du fichier requis - en fait, je 'vérifierais la non-existence du fichier; par exemple:
Vous pouvez également modifier ce code et le faire exécuter en boucle avec un délai d'une minute, par exemple, puis mettre une référence au fichier de commandes dans le dossier de démarrage de Windows:
Il existe d'autres moyens d'obtenir un délai en fonction de la version de Windows utilisée et des kits de ressources supplémentaires installés, mais la commande PING fonctionne quasiment dans toutes les circonstances. Dans la commande PING ci-dessus, 10 PINGGES fantômes sont exécutés avec un délai de 6 000 ms (soit 6 secondes). Vous pouvez utiliser ces valeurs pour obtenir le délai nécessaire entre les boucles de fichiers batch.
la source
-n 10
contre-n 1
.IF NOT EXIST C:\NO_SUCH_FILE_EVER.foo
. Hackish, mais ça marche. Merci pour l'idée.Merci à tous pour les suggestions.
J'ai fini par écrire un script VBScript basé sur l'idée de Linker3000 consistant à interroger le dossier et à utiliser le Planificateur de tâches pour l'exécuter au démarrage. J'ai fini par obtenir la syntaxe de base de cette ressource et faire les ajustements nécessaires.
J'aimerais quand même l'optimiser à un moment donné, en laissant le courage du script s'exécuter sur un système piloté par les événements, mais je n'ai plus beaucoup de temps pour travailler dessus, et bien, c'est assez bon.
Voici le script, au cas où quiconque serait intéressé (avec le segment de conversion non pertinent rédigé pour des raisons de clarté):
(En outre, je ne veux pas laisser cette question officiellement sans réponse - et je déteste accepter ma propre réponse à la question - mais j'ai voté en faveur de la réponse de Linker3000 en guise de remerciement!)
la source
Vous pouvez regarder DropIt (gratuit). Le programme convient au traitement des fichiers entrants de manière automatisée. Vous pouvez déplacer, copier, supprimer et transmettre des paramètres à d'autres programmes en ligne de commande pour convertir des images, des PDF divisés, etc.
la source
Si l’action consiste uniquement à copier les fichiers modifiés, vous pouvez utiliser robocopy / MON.
Je ne sais pas si robocopy utilise FileSystemWatcher ou fonctionne en interrogeant les modifications
la source
Ou vous pouvez utiliser Watch 4 Folder . Apparemment, c'est Freeware, portable et compatible avec Windows 7. Je ne l'ai pas essayé, mais je l'ai trouvé grâce à une recherche sur le Web et j'ai pensé le transmettre.
J'aime aussi le script VBS, également présenté sur le site.
la source
Nous avons également trouvé un gardien qui semble être assez gros et un watchexec plus petit que je n'ai pas essayé.
la source
Nous utilisons l'outil commercial (c'est-à-dire, pas gratuit) Sondage Sondage de http://www.myassays.com/folder-poll pour le faire. C'est une application Windows qui inclut une application de gestion conviviale pour permettre une configuration facile. Il existe également une option de configuration XML. La scrutation des dossiers s’effectue en tant que service Windows (elle démarre donc à chaque redémarrage). Lorsqu'un nouveau fichier est détecté dans un dossier interrogé, une application peut être lancée automatiquement (vous pouvez spécifier vos propres arguments de ligne de commande personnalisés). Il peut aussi faire d’autres choses comme copier / déplacer des fichiers. En outre, l'activité peut être consignée dans un fichier journal et il existe d'autres opérations avancées.
la source