O PowerShell exclui arquivos apenas do diretório

14

Estou tentando excluir todos os arquivos (mas não os diretórios) na pasta D: \ MyTemp, tentei:

Remove-Item "D:\MyTemp"
Remove-Item "D:\MyTemp\*"

No entanto, quando eu checo, todos os arquivos ainda estão lá.
o que estou perdendo?

SteB
fonte

Respostas:

18

Tente o seguinte:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer }

Encontre-o aqui: /superuser/150748/have-powershell-get-childitem-return-files-only

Para excluir todos os arquivos apenas no diretório especificado (ignorando os subdiretórios):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }
Bourne
fonte
1
Isso lista apenas os arquivos no diretório atual
SteB:
Meu mal, não tinha certeza se você queria fazer uma recursão. Vou editar o original. Você pode simplesmente adicionar -recurse para o comando Get-ChildItem
Bourne
Isso funciona (apenas exclua arquivos do diretório especificado, ignorando os subdiretórios): Remove-Item "D: \ MyTemp \ *. *" | Onde { ! $ _. PSIsContainer}
SteB
Isso é ótimo. Feliz por você fazer isso funcionar.
Bourne
Desculpe pelo SteB, acabei de perceber que esqueci de incluir o item de remoção. Vai ser um longo dia uau!
Bourne
12

A resposta aceita não funcionou para mim, mas eu precisava:

Get-Childitem -File | Foreach-Object {Remove-Item $_.FullName}

Para incluir pastas e arquivos, adicione -Recurse:

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}
79E09796
fonte
1
Isso exclui arquivos de subdiretórios também - possivelmente não o que o OP destina ...
Robbie Dee
1
Esta resposta deve ser aceita. Eu escolho você!
Teoman shipahi
4

Você estava quase lá, só precisava:

Remove-Item "D:\MyTemp\*.*"
Robbie Dee
fonte
0

@bourne quase o teve:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item
Mordechai
fonte
3
Isso não fornece uma resposta para a pergunta. Depois de ter reputação suficiente, você poderá comentar qualquer postagem ; em vez disso, forneça respostas que não exijam esclarecimentos do solicitante . - Do comentário
rnxrx
Como assim, não fornece uma resposta? O que isso faz? É a única resposta completa na página.
Mordechai
Não é uma resposta auto-suficiente. Até o ponto em sua resposta, é uma correção para outra resposta e deve ser incluída como um comentário.
Rnxrx
desculpe, acho que você não entende o PowerShell. Só porque eu referem-se a uma outra resposta, não faz o meu menos "auto-suficiente",
Mordechai
convém explicar o problema com a outra resposta, tornando-o um comando. Caso contrário, você pode querer explicar o seu comando PowerShell faz
Dennis Nolte