Imaginez qu'il y a un fichier A:\Example\file.txt
Si une modification est détectée dans ce fichier, il est automatiquement remplacé par le fichier B:\example\file.txt
. Si aucune boîte de dialogue de remplacement de fichier n'apparaît ni aucune invite UAC n'apparaissant à chaque fois, tout se passe en arrière-plan. Si aucun changement n'est détecté, rien n'est fait, le script continue de rechercher les modifications en arrière-plan, tout en consommant très peu de ressources système.
Je pourrais faire:
Copy-Item "A:\Example\file.txt" "B:\Example\file.txt" -Force
Mais cela ne se produit pas régulièrement ni en arrière-plan, et je ne sais pas s'il peut ignorer automatiquement ou non les invites du contrôle de compte d'utilisateur ou les boîtes de dialogue de remplacement de fichiers.
windows-8.1
powershell
Tampon Over Read
la source
la source
Réponses:
Vous allez en principe avoir besoin d'une tâche planifiée qui s'exécute à intervalles rapprochés - toutes les 5 minutes par exemple - pour détecter un changement. Une idée qui me vient à l’esprit est que vous pouvez hacher le fichier, stocker la valeur, puis redéfinir le fichier avec votre tâche planifiée et comparer le hachage à la valeur stockée. Vous semblez connaître Powershell. Verion 4.0 et versions ultérieures ont une cmdlet Get-FileHash que vous pouvez utiliser. À partir de là, demandez à votre script de copier le fichier si les hachages sont différents.
En réponse au commentaire, voici un exemple de code. StoredHash.txt est un fichier texte contenant le hachage du fichier en question.
La dernière ligne stocke le nouveau hachage afin que vous puissiez rechercher un changement ultérieur. Je n'ai pas testé ce code, il peut donc contenir des erreurs. Mais cela devrait être suffisant pour vous aider à démarrer.
la source