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?

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 }

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}

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\*.*"

0

@bourne quase o teve:

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.