Pagina inicial » como » Facilmente substituir um arquivo bloqueado, uma vez que se torne desbloqueado

    Facilmente substituir um arquivo bloqueado, uma vez que se torne desbloqueado

    Se você tentar atualizar certos arquivos do Windows (como programas ou documentos do Word) enquanto eles estiverem em uso, você obterá o erro padrão “acesso negado, o arquivo está em uso”. Embora o raciocínio por trás disso seja óbvio, pode ser bastante irritante se você precisar atualizar um pequeno executável que está atualmente em uso por outro usuário. Nessas situações, você tem, entre outras, as seguintes escolhas, todas as quais ocupam seu valioso tempo:

    • Localize e entre em contato com os usuários que estão usando o arquivo, informe-os para fechar / salvar seu trabalho, etc. e, em seguida, aplique a atualização.
    • Não aplique a atualização imediatamente e lembre-se de fazê-lo mais tarde quando os usuários não estiverem no sistema.
    • Programe algum utilitário para substituí-lo na próxima reinicialização.

    Bem, temos outra solução disponível para você: um script que você invoca através do menu Enviar para que faz o seguinte:

    1. Tenta excluir o arquivo antigo.
    2. Se o arquivo antigo estiver bloqueado, o script aguardará 20 segundos. Vá para o passo 1.
    3. Se o arquivo antigo não estiver bloqueado, o arquivo antigo será substituído pelo novo arquivo. Vá para o passo 4.
    4. Opcionalmente, faça logoff quando o processo estiver concluído.

    Dessa forma, você obtém apenas o comando replace em movimento e o script cuida do resto. Isso pode ajudá-lo a evitar rastrear usuários ou ter que instalar utilitários desnecessários em seu sistema.

    Configuração e Uso

    O script pode ser colocado em qualquer lugar no seu sistema. Então tudo o que você precisa fazer é criar um atalho para ele na sua pasta SendTo:

    Para iniciar o processo de substituição, selecione o arquivo antigo e o novo arquivo e, em seguida, invoque a opção Enviar para, clicando com o botão direito do mouse sobre o arquivo. arquivo / arquivo antigo para substituir.

    O script exibirá exatamente o que acontecerá e apresentará a opção de fazer logoff quando a substituição for concluída.

    O script tentará continuamente excluir o arquivo antigo enquanto espera vários segundos entre as tentativas.

    Tudo o que você precisa fazer é executar o processo e, sempre que todos os usuários estiverem fora, o arquivo será substituído.

    proteções

    O script tem algumas salvaguardas incorporadas:

    • O arquivo antigo e o novo arquivo são apresentados com clareza para que você saiba exatamente o que acontecerá.
    • Você pode fechar a janela de comando a qualquer momento para interromper a ação (obviamente, assumindo que a substituição ainda não tenha sido executada).
    • O script garantirá que você selecionou apenas dois arquivos quando invocar o comando Enviar para. Se você selecionar, por exemplo, 1 ou 3 arquivos, receberá uma mensagem de notificação e nada acontecerá.

    O script

    @ ECHO OFF TITLE Substituir arquivo bloqueado ECHO Substituir arquivo bloqueado ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO. ECO. SETLOCAL EnableExtensions REM Validação. SET Erro = 1 SE % 2 ==  (ECHO Dois arquivos devem ser selecionados para executar a substituição. GOTO End) SE NÃO % 3 ==  (ECHO Mais de 2 arquivos foram selecionados, então não estou Certifique-se do que fazer GOTO End) SET Erro = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Mostra o que acontecerá para que você tenha a chance de cancelar. ECHO Arquivo antigo:% OldFile% ECHO --------- ECHO Novo arquivo:% NewFile% ECHO. ECHO Você pode cancelar a substituição do arquivo antigo com o novo arquivo, fechando agora. ECO. REM Logoff no prompt. Se você não quiser ver isso, você pode excluir essas linhas. ECHO Fazer logoff automaticamente quando o processo de substituição for concluído? ECHO Digite 'Y' para fazer logoff ou inserir qualquer outra coisa automaticamente. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% SE NÃO EXISTE% OldFile% (MOVE% NewFile%% OldFile% ECHO Arquivo substituído com sucesso. GOTO End) ECHO. ECHO O arquivo antigo ainda está bloqueado. Esperando alguns momentos para tentar novamente. TIMEOUT / T 20 GOTO DoReplace: Fim IF % Error% == 1 (ECHO Instruções de uso: ECHO 1. Selecione os dois arquivos no Windows Explorer. ECHO 2. Clique com o botão direito no arquivo antigo e vá em Enviar para - Substituir Arquivo Bloqueado ECO ECHO O arquivo em que você clicou será substituído pelo outro arquivo selecionado ECO ECHO Parando sem fazer nada Pressione qualquer tecla para fechar TIMEOUT / T 15) SE / I % LogOffWhenDone% == Y (ECHO. ECHO Opção para terminar a sessão quando concluída foi selecionada. ECHO Você será desconectado em breve. SHUTDOWN / L) ENDLOCAL 

    Links

    Baixar Script ReplaceFile de SysadminGeek.com