15Jul

Vervang eenvoudig een vergrendeld bestand zodra het ontgrendeld is

Als u bepaalde Windows-bestanden( zoals programma's of Word-documenten) probeert bij te werken terwijl ze in gebruik zijn, krijgt u de foutmelding "Toegang geweigerd, bestand is in gebruik".Hoewel de redenering hierachter duidelijk is, kan het behoorlijk vervelend zijn als u een klein uitvoerbaar bestand moet bijwerken dat momenteel door een andere gebruiker wordt gebruikt. In deze situaties hebt u, onder andere, de volgende keuzes, die allemaal uw kostbare tijd in beslag nemen:

  • Zoek op en neem contact op met de gebruikers die het bestand momenteel gebruiken, vertel hen om hun werk af te sluiten of op te slaan, enz.pas dan de update toe.
  • Pas de update niet onmiddellijk toe en onthoud dat u deze later moet doen wanneer gebruikers zich niet in het systeem bevinden.
  • Plan een hulpprogramma om het te vervangen bij de volgende herstart.

Welnu, we hebben een andere oplossing voor u beschikbaar: een script dat u oproept via het menu Verzenden naar, dat het volgende doet:

  1. Probeert het oude bestand te verwijderen.
  2. Als het oude bestand is vergrendeld, wacht het script 20 seconden. Ga naar stap 1.
  3. Als het oude bestand niet is vergrendeld, wordt het oude bestand vervangen door het nieuwe bestand. Ga naar stap 4.
  4. Log uit als het proces is voltooid.

Op deze manier krijg je gewoon het vervangcommando in beweging en zorgt het script voor de rest. Hiermee kunt u voorkomen dat u gebruikers opspoort of onnodige hulpprogramma's op uw systeem installeert.

Installatie en gebruik

Het script kan overal op uw systeem worden geplaatst. Vervolgens volstaat het om een ​​snelkoppeling naar uw SendTo-map te maken:

Om het vervangingsproces te starten, selecteert u het oude bestand en het nieuwe bestand en roept u de optie Verzenden naar aan door met de rechtermuisknop op het oude bestand / bestand te klikken om te vervangen.

Het script zal precies weergeven wat er zal gebeuren en u de mogelijkheid bieden om uitgelogd te zijn als het vervangen is voltooid.

Het script probeert het oude bestand continu te verwijderen terwijl het een aantal seconden wacht tussen pogingen.

Het enige wat u hoeft te doen is het proces draaiende te krijgen en wanneer al uw gebruikers weg zijn, wordt het bestand vervangen.

Veiligheidscontroles

Het script heeft een aantal ingebouwde beveiligingen:

  • Het oude bestand en het nieuwe bestand worden duidelijk weergegeven zodat u precies weet wat er zal gebeuren.
  • U kunt het opdrachtvenster op elk moment sluiten om de actie te stoppen( natuurlijk, ervan uitgaande dat de vervanging nog niet is uitgevoerd).
  • Het script zorgt ervoor dat u slechts twee bestanden hebt geselecteerd wanneer u de opdracht Verzenden naar aanroept. Als u bijvoorbeeld 1 of 3 bestanden selecteert, ontvangt u een melding en gebeurt er niets.

Het script

@ECHO OFF TITLE Vervang geblokkeerd bestand ECHO Vervang vergrendeld bestand ECHO Geschreven door: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.SETLOCAL EnableExtensions REM Validation. SET Fout = 1 ALS{ % 2} =={ }( ECHO Twee bestanden moeten worden geselecteerd om de vervanging uit te voeren. GOTO Einde) INDIEN NIET{ % 3} =={ }( ECHO Er zijn meer dan 2 bestanden geselecteerd, dus ik ben nietGOTO Einde) SET Error = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Laat zien wat er gebeurt, zodat u de kans krijgt om te annuleren. ECHO Oud bestand:% OldFile% ECHO --------- ECHO Nieuw bestand:% NewFile% ECHO.ECHO U kunt annuleren door het oude bestand te vervangen door het nieuwe bestand door het nu te sluiten. ECHO.REM Login prompt. Als u dit niet wilt zien, kunt u deze regels verwijderen. ECHO Automatisch afmelden als het vervangingsproces is voltooid? ECHO Voer 'Y' in om automatisch uit te loggen of iets anders in te voeren om niet te doen. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% IF NOT EXIST% OldFile%( MOVE% NewFile%% OldFile% ECHO File succesvol vervangen GOTO End) ECHO.ECHO Het oude bestand is nog steeds vergrendeld. Even wachten om het opnieuw te proberen. TIMEOUT / T 20 GOTO DoReplace: einde IF{ % Error%} =={ 1}( ECHO Gebruiksaanwijzing: ECHO 1. Selecteer de twee bestanden in Windows Explorer ECHO 2. Klik met de rechtermuisknop op het oude bestand en ga naar Verzenden naar -Vervang geblokkeerd bestand ECHO ECHO Het bestand waarop u rechts hebt geklikt wordt vervangen door het andere geselecteerde bestand ECHO ECHO Stoppen zonder iets te doen Druk op een toets om te sluiten TIMEOUT / T 15) IF / I{ % LogOffWhenDone%} =={Y}( ECHO ECHO-optie om uit te loggen wanneer voltooid werd geselecteerd ECHO U wordt binnenkort uitgelogd.) SHUTDOWN / L) ENDLOCAL

Links

Download ReplaceFile Script van SysadminGeek.com