Sostituisci facilmente un file bloccato una volta che si sblocca
Se si tenta di aggiornare determinati file di Windows (come programmi o documenti word) mentre sono in uso, si ottiene l'errore standard "accesso negato, file in uso". Mentre il ragionamento alla base di questo è ovvio, può essere abbastanza fastidioso se è necessario aggiornare un piccolo eseguibile che è attualmente in uso da un altro utente. In queste situazioni, hai, tra le altre, le seguenti scelte, che prendono tutto il tuo prezioso tempo:
- Rintracciare e contattare gli utenti che stanno attualmente utilizzando il file, dire loro di chiudere / salvare il loro lavoro, ecc. E quindi applicare l'aggiornamento.
- Non applicare immediatamente l'aggiornamento e ricorda di farlo più tardi quando gli utenti non si trovano nel sistema.
- Pianificare alcune utility per sostituirlo al prossimo riavvio.
Bene, abbiamo un'altra soluzione disponibile per te: uno script che invochi tramite il menu Invia a che effettua le seguenti operazioni:
- Cerca di cancellare il vecchio file.
- Se il vecchio file è bloccato, lo script attende 20 secondi. Vai al passaggio 1.
- Se il vecchio file non è bloccato, il vecchio file viene sostituito con il nuovo file. Vai al passaggio 4.
- Facoltativamente, disconnettersi una volta terminato il processo.
In questo modo, ottieni il comando di sostituzione in movimento e la sceneggiatura si occupa del resto. Questo può aiutarti a evitare di rintracciare gli utenti o di installare utility inutili sul tuo sistema.
Installazione e utilizzo
Lo script può essere posizionato ovunque sul tuo sistema. Quindi tutto ciò che devi fare è creare un collegamento ad esso nella tua cartella SendTo:
Per avviare il processo di sostituzione, selezionare il vecchio file e il nuovo file e quindi richiamare l'opzione Invia a facendo clic con il tasto destro del mouse su vecchio file / file da sostituire.
Lo script mostrerà esattamente cosa accadrà e ti presenterà l'opzione di disconnessione una volta completata la sostituzione.
Lo script cercherà continuamente di eliminare il vecchio file mentre attende diversi secondi tra un tentativo e l'altro.
Tutto quello che devi fare è far funzionare il processo e ogni volta che tutti gli utenti sono fuori, il file verrà sostituito.
Misure di salvaguardia
Lo script ha un paio di protezioni incorporate:
- Il vecchio file e il nuovo file sono presentati in modo chiaro in modo da sapere esattamente cosa accadrà.
- È possibile chiudere la finestra di comando in qualunque momento per interrompere l'azione (ovviamente supponendo che la sostituzione non sia già stata eseguita).
- Lo script assicurerà di aver selezionato solo due file quando invochi il comando Invia a. Se selezioni, ad esempio, 1 o 3 file, riceverai un messaggio di avviso e non accadrà nulla.
Il copione
@ECHO OFF TITLE Sostituisci file bloccato ECHO Sostituisci file bloccato ECHO Scritto da: Jason Faulkner ECHO SysadminGeek.com ECHO. ECO. SETLOCAL EnableExtensions REM Validation. SET Error = 1 IF % 2 == (ECHO Due file devono essere selezionati per eseguire la sostituzione. GOTO End) IF NOT % 3 == (ECHO Sono stati selezionati più di 2 file quindi non lo sono GOTO End) SET Error = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Mostra ciò che accadrà in modo da avere la possibilità di annullare. ECHO Vecchio file:% VecchioFile% ECHO --------- Nuovo file ECHO:% NuovoFile% ECHO. ECHO È possibile annullare la sostituzione del vecchio file con il nuovo file chiudendo ora. ECO. REM Disconnetti prompt. Se non vuoi vedere questo, puoi cancellare queste righe. ECHO Si disconnette automaticamente una volta completato il processo di sostituzione? ECHO Inserire 'Y' per disconnettersi automaticamente o inserire altro da non specificare. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% IF NOT EXIST% OldFile% (MOVE% NewFile%% OldFile% ECHO File sostituito con successo GOTO End) ECHO. ECHO Il vecchio file è ancora bloccato. Aspetto qualche momento per riprovare. TIMEOUT / T 20 GOTO DoReplace: End IF % Error% == 1 (Istruzioni ECHO per l'uso: ECHO 1. Selezionare i due file in Esplora risorse: ECHO 2. Fare clic con il pulsante destro del mouse sul file precedente e andare a Invia a - Sostituisci ECHO bloccato ECHO Il file su cui si è fatto clic con il tasto destro verrà sostituito con l'altro file selezionato ECHO ECHO Arresto senza fare nulla Premere qualsiasi tasto per chiudere TIMEOUT / T 15) IF / I % LogOffWhenDone% == Y (ECHO ECHO Opzione per disconnettersi quando è stato selezionato completato. ECHO Verrai disconnesso brevemente. SHUTDOWN / L) ENDLOCAL
link
Scarica ReplaceFile Script da SysadminGeek.com