Skift enkelt en låst fil når den blir låst opp

Innholdsfortegnelse:

Skift enkelt en låst fil når den blir låst opp
Skift enkelt en låst fil når den blir låst opp

Video: Skift enkelt en låst fil når den blir låst opp

Video: Skift enkelt en låst fil når den blir låst opp
Video: How to play FLAC files in WMP - YouTube 2024, April
Anonim

Hvis du prøver å oppdatere visse Windows-filer (for eksempel programmer eller tekstdokumenter) mens de brukes, får du standardfeilen "tilgang nektet, filen er i bruk". Mens begrunnelsen bak dette er åpenbart, kan det være ganske irriterende hvis du trenger å oppdatere en liten kjørbar som for øyeblikket er i bruk av en annen bruker. I disse situasjonene har du blant annet følgende valg, som alle tar opp din verdifulle tid:

  • Spor ned og kontakt brukerne som bruker filen, fortelle dem å lukke / lagre arbeidet etc. og deretter bruke oppdateringen.
  • Ikke bruk oppdateringen umiddelbart, og husk å gjøre det senere når brukerne ikke er i systemet.

  • Planlegg noe verktøy for å erstatte det ved neste omstart.

Vel, vi har en annen løsning tilgjengelig for deg: et skript du påkaller via Send til-menyen som gjør følgende:

  1. Trenger å slette den gamle filen.
  2. Hvis den gamle filen er låst, venter skriptet 20 sekunder. Gå til trinn 1.

  3. Hvis den gamle filen ikke er låst, blir den gamle filen erstattet med den nye filen. Gå til trinn 4.
  4. Eventuelt logger av når prosessen er ferdig.

På denne måten får du bare kommandoen erstattet, og skriptet tar vare på resten. Dette kan hjelpe deg med å unngå å spore brukere eller måtte installere unødvendige verktøy på systemet.

Oppsett og bruk

Skriptet kan plasseres hvor som helst på systemet ditt. Så alt du trenger å gjøre er å lage en snarvei til den i SendTo-mappen din:

Image
Image

For å starte utskiftingsprosessen, velg den gamle filen og den nye filen og deretter på alternativet Send til ved å høyreklikke på gammel fil / fil som skal erstattes.

Skriptet vil vise nøyaktig hva som vil skje og presentere deg med muligheten til å bli logget av når erstatningen er fullført.
Skriptet vil vise nøyaktig hva som vil skje og presentere deg med muligheten til å bli logget av når erstatningen er fullført.
Skriptet vil kontinuerlig prøve å slette den gamle filen mens du venter flere sekunder i mellom forsøk.
Skriptet vil kontinuerlig prøve å slette den gamle filen mens du venter flere sekunder i mellom forsøk.
Alt du trenger å gjøre er å få prosessen kjørt, og når alle brukerne dine er ute, blir filen erstattet.
Alt du trenger å gjøre er å få prosessen kjørt, og når alle brukerne dine er ute, blir filen erstattet.

sikringstiltak

Skriptet har et par innebygde beskyttelsesforanstaltninger:

  • Den gamle filen og den nye filen presenteres tydelig slik at du vet nøyaktig hva som vil skje.
  • Du kan lukke kommandofeltet når som helst for å stoppe handlingen (selvfølgelig, forutsatt at erstatningen ikke allerede er utført).
  • Skriptet sikrer at du har valgt bare to filer når du påkaller Send til kommandoen. Hvis du for eksempel velger 1 eller 3 filer, vil du motta en varselmelding, og ingenting vil skje.

Manuset

@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

lenker

Last ned ReplaceFile Script fra SysadminGeek.com

Anbefalt: