15Jul

Remplacez facilement un fichier verrouillé une fois qu'il est déverrouillé

Si vous essayez de mettre à jour certains fichiers Windows( tels que des programmes ou des documents Word) pendant leur utilisation, vous obtenez l'erreur standard "Accès refusé, fichier en cours d'utilisation".Bien que le raisonnement derrière ceci soit évident, il peut être assez ennuyeux si vous devez mettre à jour un petit exécutable qui est actuellement utilisé par un autre utilisateur. Dans ces situations, vous avez, entre autres, les choix suivants, qui prennent tous votre temps précieux:

  • Repérez et contactez les utilisateurs qui utilisent actuellement le fichier, dites-leur de fermer / sauvegarder leur travail, etc.puis appliquez la mise à jour.
  • N'appliquez pas la mise à jour immédiatement et n'oubliez pas de le faire plus tard lorsque les utilisateurs ne sont pas dans le système.
  • Programmer un utilitaire pour le remplacer au prochain redémarrage.

Eh bien, nous avons une autre solution à votre disposition: un script que vous appelez via le menu Envoyer à qui fait ce qui suit:

  1. Essaie de supprimer l'ancien fichier.
  2. Si l'ancien fichier est verrouillé, le script attend 20 secondes. Passez à l'étape 1.
  3. Si l'ancien fichier n'est pas verrouillé, l'ancien fichier est remplacé par le nouveau fichier. Passez à l'étape 4.
  4. Déconnectez-vous éventuellement une fois le processus terminé.

De cette façon, vous obtenez juste la commande de remplacement en mouvement et le script s'occupe du reste. Cela peut vous aider à éviter de rechercher des utilisateurs ou d'installer des utilitaires inutiles sur votre système.

Configuration et utilisation

Le script peut être placé n'importe où sur votre système. Pour créer un raccourci dans votre dossier SendTo, procédez comme suit:

Pour lancer le processus de remplacement, sélectionnez l'ancien fichier et le nouveau fichier, puis appelez l'option Envoyer vers en cliquant avec le bouton droit sur l'ancien fichier / fichier à remplacer.

Le script affichera exactement ce qui va se passer et vous présentera l'option d'être déconnecté une fois le remplacement terminé.

Le script essayera continuellement de supprimer l'ancien fichier en attendant plusieurs secondes entre les essais.

Tout ce que vous avez à faire est de lancer le processus et lorsque tous vos utilisateurs sont sortis, le fichier sera remplacé.

Safeguards

Le script comporte deux protections intégrées:

  • L'ancien fichier et le nouveau fichier sont clairement présentés afin que vous sachiez exactement ce qui va se passer.
  • Vous pouvez fermer la fenêtre de commande à tout moment pour arrêter l'action( bien sûr, en supposant que le remplacement n'a pas déjà été effectué).
  • Le script s'assurera que vous n'avez sélectionné que deux fichiers lorsque vous appelez la commande Envoyer à.Si vous sélectionnez, par exemple, 1 ou 3 fichiers, vous recevrez un message de notification et rien ne se passera.

Le script

@ECHO OFF TITLE Remplacer le fichier verrouillé ECHO Remplacer le fichier verrouillé ECHO Rédigé par: Jason Faulkner ECHO SysadminGeek.com ECHO.ÉCHO.SETLOCAL EnableExtensions REM Validation. SET Erreur = 1 IF{ % 2} =={ }( ECHO Deux fichiers doivent être sélectionnés pour exécuter le remplacement GOTO Fin) SI NON{ % 3} =={ }( ECHO Plus de 2 fichiers ont été sélectionnés, donc je ne suis pasGOTO End) SET Erreur = 0 SET OldFile = "% ~ f1" SET NouveauFichier = "% ~ f2" ENSEMBLE LogOffWhenDone = 0 REM Montre ce qui se passera pour que vous ayez une chance de vous déconnecter. Ancien fichier ECHO:% OldFile% ECHO --------- ECHO Nouveau fichier:% NewFile% ECHO.ECHO Vous pouvez annuler le remplacement de l'ancien fichier par le nouveau fichier en fermant maintenant.ÉCHO.REM Se déconnecter de l'invite. Si vous ne voulez pas voir cela, vous pouvez supprimer ces lignes. ECHO Déconnectez-vous automatiquement une fois le processus de remplacement terminé?ECHO Entrez 'Y' pour vous déconnecter automatiquement ou entrer autre chose que non. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% AncienFichier% SI NON EXIST% AncienFichier%( MOVE% NewFile%% OldFile% Fichier ECHO remplacé avec succès GOTO End) ECHO.ECHO L'ancien fichier est toujours verrouillé.J'attends quelques instants pour réessayer. TIMEOUT / T 20 GOTO DoReplace: Fin IF{ % Error%} =={ 1}( ECHO Instructions d'utilisation: ECHO 1. Sélectionnez les deux fichiers dans Windows Explorer ECHO 2. Faites un clic droit sur l'ancien fichier et allez Envoyer à -Remplacer le fichier verrouillé ECHO ECHO Le fichier sur lequel vous avez cliqué à droite sera remplacé par l'autre fichier sélectionné ECHO ECHO Arrêter sans rien faire Appuyer sur une touche pour fermer TIMEOUT / T 15) IF / I{ % LogOffWhenDone%} =={Y}( ECHO ECHO Option pour se déconnecter une fois terminé ECHO Vous serez déconnecté prochainement SHUTDOWN / L) ENDLOCAL

Liens

Télécharger ReplaceFile Script de SysadminGeek.com