Qual é a maneira da linha de comando de enviar arquivos para a lixeira?

41

Existe um programa de linha de comando que pode enviar arquivos para a lixeira? Isso é no XP e no Vista.

na hora certa
fonte
2
Diferente de 'del'?
pelms
2
Qual sistema operacional você está usando?
ChrisF
saiu para adicionar XP e Vista
justintime 18/08/09
11
@pelms delo exclui permanentemente, não o move para a lixeira.
MiffTheFox 18/08/09
2
Então você deve pensar que não há razão para ter o Bin. Pela sua lógica, por que reciclar arquivos do Explorer em vez de excluí-los permanentemente? Você pode não ter visto um uso, mas eles existem. Recentemente, eu queria excluir uma pilha de arquivos de várias pastas, mas queria checá-las duas vezes antes de apagá-las. A única / mais fácil maneira de fazer isso era executar um forloop no prompt de comando para enviá-los para a lixeira, e então eu pude vê-los todos consolidados em um único local para garantir que apenas os arquivos que eu queria excluir estivessem lá e restaurar todos os arquivos incorretos.
Synetech

Respostas:

31

O CmdUtils tem um utilitário chamado Recycleque faz exatamente isso. [ download direto ]

Mais informações :

Para usar o comando reciclar, baixe o arquivo zip do CmdUtils e descompacte o exe na sua pasta do Windows. Adicioná-los à pasta do Windows permitiria que você acesse o comando globalmente sem precisar especificar o caminho inteiro para o executável. Você pode começar a usar o comando reciclar digitando;

recycle filename.txt

Você também pode especificar curingas com os comandos, para digitar recicl * .txt reciclará todos os arquivos de texto no diretório atual. Há também uma opção para suprimir a caixa de diálogo de confirmação de exclusão usando o sinalizador de força com o comando

Para excluir um arquivo sem precisar confirmar, use o comando

recycle –f filename.txt

O sinalizador –f diz ao comando para forçar uma reciclagem sem mostrar a caixa de diálogo de confirmação.

Marca
fonte
19

Se você possui o PowerShell instalado:

$sh = new-object -comobject "Shell.Application"
$ns = $sh.Namespace(0).ParseName("PATH\TO\FILE\TO\DELETE")
$ns.InvokeVerb("delete")
EBGreen
fonte
2
+1 Qualquer solução do PowerShell receberá meu voto. Espero que o próximo Windows substitua o cmd.exe pelo PowerShell.
BinaryMisfit 18/08/09
2
Duvido que isso aconteça por muito tempo. :)
EBGreen
11
Isso é muito lento, especialmente se estiver reciclando muitos arquivos (por exemplo, a contrapartida do PS for /r %i in (foobar.tmp) do recycle "%i").
Synetech
11
@BinaryMisfit finalmente o que acontece com o Windows 10
phuclv
5

Não há uma maneira integrada de fazer isso, mas existem ferramentas de terceiros que podem. Verifiquei minha pasta de despejo de programa e encontrei algumas opções. Todos eles funcionam da mesma forma (por exemplo, recycle filename.ext), mas variam em desempenho, por isso depende de quais são suas necessidades (por exemplo, você está reciclando muitos arquivos?)

  • De MadDog Software Reciclar é rápido e não tem saída, mas pode lançar um erro não encontrado misteriosa
  • O DeleteXP do EasyTools é lento porque exibe o progresso para o console, mas se você o redirecionar nul, é o mais rápido e confiável
  • A reciclagem de cmd de Chris Yuen é mais lenta, mesmo ao redirecionar a saída (mal formatada) paranul
Synetech
fonte
4

Eu tenho essa pergunta há muito tempo - finalmente peguei o assunto em minhas próprias mãos e rolei meu próprio utilitário cmd-recycle

Dei uma olhada no Recycle.exeCmdUtils. A questão é que ela exibe a caixa de diálogo tradicional "Você tem certeza" quando reciclar (que pode ser removida adicionando o argumento -f). Meu programa apenas faz isso (já que você sempre pode desfazer), o que eu acho mais adequado para fins de script.

kizzx2
fonte
Acabei de executá-lo no Windows Server 2008R2 e não funciona.
dthree 30/03/19
Também não funciona no Windows 7. Acabei de receber um erro "O aplicativo não pôde ser iniciado ..." e, se clicar para obter mais informações, sou levado ao microsoft.com: "Erros de inicialização do .NET Framework: Gerenciando a experiência do usuário" .
ashleedawg 15/06
4

Pode usar utilitário externo:

nircmd moverecyclebin * .tmp

Yura Shinkarev
fonte
1

Tentei vários programas para mover um arquivo para a lixeira, mas fiquei insatisfeito com eles por vários motivos.

O principal problema que a maioria tem é a falta de status decente ou mensagens de erro. Alguns simplesmente falham silenciosamente, então você acha que o programa reciclou alguma coisa, mas na verdade não fez nada!

Para remediar isso, escrevi um utilitário de linha de comando chamado bin-it que move os arquivos especificados para a lixeira do Windows. Ele suporta curingas e fornece status completo e relatórios de erros. Se algo der errado, você saberá!

É totalmente gratuito e pode ser baixado aqui como binit.zip:
http://www.akiwi.co.uk/utilities.html

akiwi
fonte
Eu recomendo que você mude o nome. "Bin It" me faz pensar em algo como uma conversão binária ASCII->.
Can-ned_food
1

Sem usar ferramentas de terceiros, não acredito que haja uma "maneira de enviar arquivos para a lixeira" pela linha de comando. Você pode obter o caminho completo para a lixeira em um sistema Windows 7-10 como este:

::get current user sid
for /f "tokens=2" %%i in ('whoami /user /NH') do set UID=%%i
:: create full path to current user recycle bin in a variable
set recyclebin=%systemdrive%\$Recycle.Bin\%UID%

echo %recyclebin%

O problema é que, se você simplesmente mover um arquivo para lá, ele não aparece na lixeira. Você só poderá vê-lo em um prompt de comando. A lixeira é uma pasta especial. O método API do Windows de mover itens para a lixeira renomeia o arquivo e armazena informações sobre ele em um ou mais arquivos de informações proprietários, dependendo da versão do sistema operacional. As ferramentas de terceiros sugeridas nas respostas acima invocam esses métodos de API que lidam com tudo isso para você.

Mais informações aqui: https://dereknewton.com/2010/06/recycle-bin-forensics-in-windows-7-and-vista/

TroyK
fonte
Bem-vindo ao superusuário. Sua resposta parece explicar como criar o caminho para a Lixeira do usuário atualmente conectado, mas não parece explicar como usar essas informações para enviar arquivos para a lixeira, conforme solicitado pelo OP. Edite sua postagem para incluir esta última parte. Obrigado por contribuir.
Eu digo Restabelecer Monica
Isso tem quase todas as informações que você precisa para escrever suas próprias informações, exceto apresentar uma delas, exceto mencionando os dados INFO2 e $ I que você precisaria manipular.
Can-ned_food
Avise-me quando a resposta incluir um script cmd.exe ou wsh.exe que o faça e, em seguida, votarei! :-) Bem, acho que o wsh não é tecnicamente aplicável à pergunta, mas a pergunta é bastante vaga.
Can-ned_food
1

Sem programas externos - deleteJS.bat. Ele usa o Shell.Applicationmétodo invocar verbo. o uso é simples:

call deleteJS.bat c:\someFile.txt
call deleteJS.bat d:\someFolder
npocmaka
fonte
0

Você pode tentar RecycleIt . Ele enviará arquivos para a Lixeira do Windows via linha de comando.

EXEMPLO DE USO:

recycleIt.exe C:\temp\example.txt /quit

NOTA: Você precisa adicionar o "/ quit" ou ele abrirá uma janela que permanece aberta. Isso pode ser problemático para sessões de console sem cabeça.

Michael Weiner
fonte