Ersetzen Sie leicht eine gesperrte Datei, sobald sie entsperrt wird
Wenn Sie versuchen, bestimmte Windows-Dateien (z. B. Programme oder Word-Dokumente) während der Verwendung zu aktualisieren, wird der Standardfehler "Zugriff verweigert, Datei wird verwendet" angezeigt. Die Gründe dafür liegen auf der Hand. Es kann jedoch ärgerlich sein, wenn Sie eine kleine ausführbare Datei aktualisieren müssen, die derzeit von einem anderen Benutzer verwendet wird. In diesen Situationen haben Sie unter anderem die folgenden Optionen, die alle Ihre wertvolle Zeit in Anspruch nehmen:
- Suchen Sie nach den Benutzern, die die Datei gerade verwenden, und wenden Sie sich an sie. Teilen Sie ihnen mit, dass sie ihre Arbeit schließen, speichern usw., und wenden Sie dann das Update an.
- Wenden Sie das Update nicht sofort an und denken Sie daran, es später zu tun, wenn Benutzer nicht im System sind.
- Planen Sie ein Dienstprogramm, um es beim nächsten Neustart zu ersetzen.
Nun, wir haben eine andere Lösung für Sie: ein Skript, das Sie über das Menü "Senden an" aufrufen. Dabei werden folgende Aktionen ausgeführt:
- Versucht, die alte Datei zu löschen.
- Wenn die alte Datei gesperrt ist, wartet das Skript 20 Sekunden. Weiter mit Schritt 1.
- Wenn die alte Datei nicht gesperrt ist, wird die alte Datei durch die neue Datei ersetzt. Weiter mit Schritt 4.
- Melden Sie sich optional ab, wenn der Vorgang abgeschlossen ist.
Auf diese Weise bringen Sie den Befehl zum Ersetzen in Bewegung und das Skript kümmert sich um den Rest. Auf diese Weise können Sie das Aufspüren von Benutzern vermeiden oder unnötige Dienstprogramme auf Ihrem System installieren.
Einrichtung und Verwendung
Das Skript kann an beliebiger Stelle in Ihrem System abgelegt werden. Dann müssen Sie nur noch eine Verknüpfung in Ihrem SendTo-Ordner erstellen:
Um den Ersetzungsvorgang zu starten, wählen Sie die alte und die neue Datei aus und rufen Sie dann die Option Senden an auf, indem Sie mit der rechten Maustaste auf das Symbol klicken alte Datei / Datei zum Ersetzen.
Das Skript zeigt genau an, was passieren wird, und bietet Ihnen die Option, abgemeldet zu werden, sobald der Austausch abgeschlossen ist.
Das Skript versucht ständig, die alte Datei zu löschen, während es einige Sekunden zwischen den Versuchen wartet.
Alles, was Sie tun müssen, ist, den Prozess zum Laufen zu bringen, und wenn alle Benutzer ausgefallen sind, wird die Datei ersetzt.
Schutzmaßnahmen
Das Skript verfügt über ein paar eingebaute Sicherheitsvorkehrungen:
- Die alte und die neue Datei werden übersichtlich dargestellt, so dass Sie genau wissen, was passiert.
- Sie können das Befehlsfenster jederzeit schließen, um die Aktion zu stoppen (natürlich wird davon ausgegangen, dass das Ersetzen noch nicht durchgeführt wurde)..
- Das Skript stellt sicher, dass Sie nur zwei Dateien ausgewählt haben, wenn Sie den Befehl Senden an aufrufen. Wenn Sie beispielsweise 1 oder 3 Dateien auswählen, erhalten Sie eine Hinweisnachricht, und es passiert nichts.
Das Skript
@ECHO OFF TITLE Gesperrte Datei ersetzen ECHO Gesperrte Datei ersetzen ECHO Geschrieben von: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM-Überprüfung. SET-Fehler = 1 WENN % 2 == (ECHO Zum Ersetzen müssen zwei Dateien ausgewählt werden. GOTO-Ende) WENN NICHT % 3 == (ECHO Es wurden mehr als 2 Dateien ausgewählt, daher nicht GOTO Ende) SET Fehler = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Zeigt an, was passieren wird, sodass Sie die Möglichkeit haben, den Vorgang abzubrechen. ECHO Alte Datei:% OldFile% ECHO --------- ECHO Neue Datei:% NewFile% ECHO. ECHO Sie können das Ersetzen der alten Datei durch die neue Datei abbrechen, indem Sie jetzt schließen. ECHO. REM Abmeldeaufforderung. Wenn Sie dies nicht sehen möchten, können Sie diese Zeilen löschen. ECHO Nach Abschluss des Ersetzungsvorgangs automatisch abmelden? ECHO Geben Sie 'J' ein, um sich automatisch abzumelden, oder geben Sie etwas anderes ein, um dies nicht zu tun. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% IF NOT EXIST% OldFile% (MOVE% NewFile%% OldFile% ECHO Datei erfolgreich ersetzt. GOTO Ende) ECHO. ECHO Die alte Datei ist noch gesperrt. Warten Sie ein paar Sekunden, um es erneut zu versuchen. TIMEOUT / T 20 GOTO DoReplace: Ende IF % Error% == 1 (ECHO-Gebrauchsanweisung: ECHO 1. Wählen Sie die beiden Dateien im Windows Explorer aus. ECHO 2. Klicken Sie mit der rechten Maustaste auf die alte Datei und gehen Sie auf Senden. Gesperrte Datei ersetzen ECHO. ECHO Die Datei, auf die Sie mit der rechten Maustaste geklickt haben, wird durch die andere ausgewählte Datei ersetzt. ECHO. ECHO Anhalten, ohne etwas zu tun. Drücken Sie eine beliebige Taste, um zu schließen Y (ECHO. ECHO Option zum Abmelden, wenn der Vorgang abgeschlossen ist. ECHO Sie werden in Kürze abgemeldet. SHUTDOWN / L) ENDLOCAL
Links
Laden Sie das ReplaceFile-Skript von SysadminGeek.com herunter