Connect with us

Wie man

Ersetzen Sie eine gesperrte Datei einfach, sobald sie entsperrt ist

Ersetzen Sie eine gesperrte Datei einfach, sobald sie entsperrt ist

Wenn Sie versuchen, bestimmte Windows-Dateien (z. B. Programme oder Word-Dokumente) zu aktualisieren, während sie verwendet werden, wird der Standardfehler „Zugriff verweigert, Datei wird verwendet“ angezeigt. Obwohl die Gründe dafür offensichtlich sind, kann es ziemlich ä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 folgende Möglichkeiten, die alle Ihre wertvolle Zeit in Anspruch nehmen:

  • Suchen und kontaktieren Sie die Benutzer, die die Datei derzeit verwenden, und fordern Sie sie auf, ihre Arbeit zu schließen / zu 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 sich Benutzer nicht im System befinden.
  • Planen Sie ein Dienstprogramm ein, 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 und das folgende Aktionen ausführt:

  1. Versucht, die alte Datei zu löschen.
  2. Wenn die alte Datei gesperrt ist, wartet das Skript 20 Sekunden. Fahren Sie mit Schritt 1 fort.
  3. Wenn die alte Datei nicht gesperrt ist, wird die alte Datei durch die neue Datei ersetzt. Fahren Sie mit Schritt 4 fort.
  4. Optional können Sie sich abmelden, sobald der Vorgang abgeschlossen ist.

Auf diese Weise wird nur der Befehl replace in Bewegung gesetzt, und das Skript kümmert sich um den Rest. Auf diese Weise können Sie vermeiden, Benutzer aufzuspüren oder unnötige Dienstprogramme auf Ihrem System installieren zu müssen.

Einrichtung und Verwendung

Das Skript kann an einer beliebigen Stelle auf Ihrem System platziert werden. Dann müssen Sie nur noch eine Verknüpfung in Ihrem SendTo-Ordner erstellen:

Um den Ersetzungsprozess 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 klicken.

Bild

Das Skript zeigt genau an, was passieren wird, und bietet Ihnen die Möglichkeit, sich nach Abschluss des Austauschs abzumelden.

Bild

Das Skript versucht kontinuierlich, die alte Datei zu löschen, während zwischen den Versuchen einige Sekunden gewartet wird.

Bild

Alles, was Sie tun müssen, ist, den Prozess zum Laufen zu bringen. Wenn alle Benutzer nicht erreichbar sind, wird die Datei ersetzt.

Schutzmaßnahmen

Das Skript verfügt über einige integrierte Sicherheitsvorkehrungen:

  • Die alte und die neue Datei werden übersichtlich dargestellt, sodass Sie genau wissen, was passieren wird.
  • Sie können das Befehlsfenster jederzeit schließen, um die Aktion zu stoppen (vorausgesetzt, das Ersetzen wurde noch nicht durchgeführt).
  • 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 Benachrichtigung und es passiert nichts.

Das Drehbuch

@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

Links

Laden Sie das ReplaceFile-Skript von SysadminGeek.com herunter

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia