Powershell elimina i file solo dalla directory


14

Sto cercando di eliminare tutti i file (ma non le directory) nella cartella D: \ MyTemp, ho provato:

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

Tuttavia, quando controllo, tutti i file sono ancora lì.
Cosa mi sto perdendo?

Risposte:


18

Prova questo:

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

Trovato qui: /superuser/150748/have-powershell-get-childitem-return-files-only

Per eliminare tutti i file solo nella directory specificata (ignorando le directory secondarie):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }

1
Questo elenca solo i file nella directory corrente
— SteB

Mio male, non ero sicuro che volessi fare la ricorrenza. Modificherò l'originale. Puoi semplicemente aggiungere -recurse al comando Get-ChildItem
— bourne

Funziona (elimina solo i file dalla directory specificata, ignorando le directory secondarie): Rimuovi elemento "D: \ MyTemp \ *. *" | Dove { ! $ _. PSIsContainer}
— SteB

È fantastico. Sono contento che tu abbia funzionato.
— Bourne,

Mi dispiace tra SteB, ho appena notato che ho dimenticato di includere l'elemento Rimuovi. Sarà una lunga giornata Eeeek !!!
— Bourne,

12

La risposta accettata non ha funzionato per me, invece avevo bisogno di:

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

Per includere cartelle e file, aggiungere -Recurse:

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

1
Questo elimina anche i file dalle sottodirectory - probabilmente non quello che l'OP intendeva ...
— Robbie Dee,

1
Questa risposta dovrebbe essere accettata una. Io ti ho scelto!
— Teoman Shipahi,

4

Eri quasi lì, avevi solo bisogno di:

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

0

@bourne ce l'aveva quasi fatta:

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

3
Questo non fornisce una risposta alla domanda. Una volta che hai una reputazione sufficiente , sarai in grado di commentare qualsiasi post ; fornire invece risposte che non richiedono chiarimenti da parte del richiedente . - Dalla recensione
— rnxrx,

Cosa vuoi dire con che non fornisce una risposta? Che cosa fa? È l'unica risposta completa sulla pagina.
— Mordechai,

Non è una risposta autosufficiente. Al punto della tua risposta è una correzione per un'altra risposta e dovrebbe essere inclusa come commento.
— rnxrx,

scusa, immagino tu non capisca powershell. Solo perché mi riferisco a un'altra risposta, la mia non è meno "autosufficiente",
— Mordechai il

potresti voler spiegare il problema con l'altra risposta, rendendolo un comando. Altrimenti potresti voler spiegare cosa fa il tuo comando Powershell
— Dennis Nolte il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.