Si vous essayez de mettre à jour certains fichiers Windows (tels que des programmes ou des documents Word) en cours d'utilisation, vous obtenez l'erreur standard «accès refusé, le fichier est en cours d'utilisation». Bien que le raisonnement derrière cela soit évident, il peut être assez gênant de devoir mettre à jour un petit exécutable actuellement utilisé par un autre utilisateur. Dans ces situations, vous avez, entre autres, les choix suivants, qui occupent tous votre temps précieux:
- Recherchez 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 rappelez-vous de le faire plus tard lorsque les utilisateurs ne sont pas dans le système.
- Planifiez un utilitaire pour le remplacer au prochain redémarrage.
Nous avons une autre solution à votre disposition: un script que vous appelez via le menu Envoyer vers qui effectue les opérations suivantes:
- Essaie de supprimer l'ancien fichier.
-
Si l'ancien fichier est verrouillé, le script attend 20 secondes. Allez à l'étape 1.
- Si l'ancien fichier n'est pas verrouillé, l'ancien fichier est remplacé par le nouveau fichier. Passez à l'étape 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 se charge du reste. Cela peut vous aider à éviter de traquer des utilisateurs ou d'avoir à installer des utilitaires inutiles sur votre système.
Configuration et utilisation
Le script peut être placé n'importe où sur votre système. Ensuite, tout ce que vous avez à faire est de créer un raccourci vers celui-ci dans votre dossier SendTo:
Pour démarrer le processus de remplacement, sélectionnez l'ancien fichier et le nouveau fichier, puis appelez l'option Envoyer à en cliquant à l'aide du bouton droit de la souris. ancien fichier / fichier à remplacer.
Sauvegardes
Le script comporte quelques protections intégrées:
- L'ancien fichier et le nouveau fichier sont clairement présentés afin que vous sachiez exactement ce qui se passera.
- Vous pouvez fermer la fenêtre de commande à tout moment pour arrêter l'action (bien sûr, en supposant que le remplacement n'ait pas déjà été effectué).
- Le script garantira 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 d’avis et rien ne se passera.
Le scénario
@ECHO OFF TITLE Replace Locked File ECHO Replace Locked File ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Validation. SET Error=1 IF {%2}=={} ( ECHO Two files must be selected to run the replace. GOTO End ) IF NOT {%3}=={} ( ECHO More than 2 files were selected so I am not sure what to do. GOTO End ) SET Error=0 SET OldFile='%~f1' SET NewFile='%~f2' SET LogOffWhenDone=0 REM Show what will happen so you have a chance to cancel out. ECHO Old File: %OldFile% ECHO --------- ECHO New File: %NewFile% ECHO. ECHO You can cancel replacing the Old File with the New File by closing now. ECHO. REM Log off prompt. If you do not want to see this, you can delete these lines. ECHO Automatically log off once the replace process has completed? ECHO Enter 'Y' to automatically log off or enter anything else to not. SET /P LogOffWhenDone=:DoReplace DEL /F /Q %OldFile% IF NOT EXIST %OldFile% ( MOVE %NewFile% %OldFile% ECHO File replaced successfully. GOTO End ) ECHO. ECHO The Old File is still locked. Waiting a few moments to try again. TIMEOUT /T 20 GOTO DoReplace:End IF {%Error%}=={1} ( ECHO Instructions for use: ECHO 1. Select the two files in Windows Explorer. ECHO 2. Right click on the Old File and go Send To - Replace Locked File ECHO. ECHO The file you right clicked on will be replaced with the other selected file. ECHO. ECHO Stopping without doing anything. Press any key to close. TIMEOUT /T 15 ) IF /I {%LogOffWhenDone%}=={Y} ( ECHO. ECHO Option to Log Off when completed was selected. ECHO You will be logged off shortly. SHUTDOWN /L ) ENDLOCAL
Liens
Téléchargez le script ReplaceFile à partir de SysadminGeek.com