Arquivos de movimentação de script em lote da Lixeira do Windows

2

Existe uma maneira de mover arquivos da Lixeira do Windows para outra pasta usando um script em lote?

Plano de fundo: Eu tenho uma pasta chamada C:\Temp no meu computador. Limpo essa pasta toda semana usando um script em lote. Eu gostaria de usar essa pasta C:\Temp como o local padrão para todos os meus arquivos excluídos. Infelizmente, por este post , aprendi que você não pode mudar o local padrão onde o Windows exclui arquivos e pastas. Fiquei me perguntando, no entanto, se é possível usar um script em lotes para mover arquivos para fora da Lixeira e para a minha pasta C:\Temp .

Observação: se houver outro método, talvez um que não use um arquivo de lote, também estou aberto a isso.

    
por jsve 12.02.2014 / 05:26

2 respostas

1

Isso pode ser feito usando um script do PowerShell da seguinte forma:

$shell = New-Object -ComObject Shell.Application  
$recycleBin = $shell.Namespace(0xA) #Recycle Bin  
$recycleBin.Items() | %{Move-Item $_.Path ("C:\Temp\{0}" -f $_.Name)}   
  • A estrutura de diretórios das pastas excluídas é mantida ao mover para a pasta de destino.
  • A pasta de destino ( C:\Temp neste caso) deve existir antes que o script seja executado ou os arquivos não sejam movidos.
  • Um arquivo não será movido se um arquivo com o mesmo nome já existir no local de destino. Isso poderia ser tratado pegando o erro e acrescentando o Nome com algo para torná-lo único.
  • A ação do script é específica da Lixeira do usuário atual.

Script é uma versão modificada do este do Repositório do Microsoft Script Center.

    
por 13.02.2014 / 01:04
0

Você pode acessar a Lixeira no caminho C: \ $ Recycle.bin para poder usar o comando xcopy no seu script. Leve em conta que você pode ter uma pasta como essa em mais de uma unidade.

Copiaria todos os arquivos e pastas da Lixeira e, na linha seguinte, eu excluiria todo o seu conteúdo.

O script será assim:

xcopy C:\$Recycle.bin C:\Temp /E /R /Y
rd /s /q C:\$Recycle.bin

Não há como a Lixeira receber um comando "vazio". Ao deletar esta pasta, você está realmente esvaziando-a. O Windows recria essa pasta conforme necessário.

Você pode ler a referência de linha de comando no Technet da Microsoft para saber mais sobre todos os parâmetros disponíveis para xcopy e rd .

Para abordar @JdeBP observações: Se você tiver mais de uma conta de usuário em seu computador, poderá usar C: \ $ Recycle.bin \ USER-SID . Para descobrir o SID diferente e aquele que corresponde à sua conta de usuário, use esta entrada do registro.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

A chave ProfileImagePath contém o nome do usuário.

    
por 12.02.2014 / 08:55