Powershell elimina archivos solo del directorio

14

Estoy tratando de eliminar todos los archivos (pero no los directorios) en la carpeta D: \ MyTemp, he intentado:

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

Sin embargo, cuando verifico, todos los archivos siguen ahí.
¿Qué me estoy perdiendo?

SteB
fuente

Respuestas:

18

Prueba esto:

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

Lo encontré aquí: /superuser/150748/have-powershell-get-childitem-return-files-only

Para eliminar todos los archivos en el directorio especificado solamente (ignorando los subdirectorios):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }
Bourne
fuente
1
Esto solo enumera el archivo en el directorio actual
SteB
Mi mal, no estaba seguro si quería hacer recurse. Editaré el original. Puede simplemente agregar -recurse al comando Get-ChildItem
bourne el
Esto funciona (solo elimina archivos del directorio especificado, ignorando los subdirectorios): Remove-Item "D: \ MyTemp \ *. *" | Dónde { ! $ _. PSIsContainer}
SteB
Eso es genial. Me alegra que lo hayas hecho funcionar.
Bourne
Lo siento por cierto SteB, acabo de notar que olvidé incluir el elemento Eliminar. Va a ser un largo día ¡guau!
Bourne
12

La respuesta aceptada no funcionó para mí, en cambio necesitaba:

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

Para incluir carpetas y archivos, agregue -Recurse:

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}
79E09796
fuente
1
Esto también elimina archivos de subdirectorios, posiblemente no lo que pretendía el OP ...
Robbie Dee
1
Esta respuesta debe ser aceptada. ¡Te escojo a ti!
Teoman shipahi
4

Ya casi estabas allí, solo necesitabas:

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

@bourne casi lo tuvo:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item
Mordechai
fuente
3
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación , podrá comentar cualquier publicación ; en su lugar, proporcione respuestas que no requieran aclaración del autor de la pregunta . - De la opinión
rnxrx
¿Qué quieres decir con que no proporciona una respuesta? ¿Qué hace? Es la única respuesta completa en la página.
Mordechai
No es una respuesta autosuficiente. Hasta el punto en su respuesta, es una corrección a otra respuesta y debe incluirse como un comentario.
rnxrx
lo siento, supongo que no entiendes powershell. Solo porque me refiero a otra respuesta, no hace que la mía sea menos "autosuficiente",
Mordechai
es posible que desee explicar el problema con la otra respuesta, convirtiéndolo en un comando. De lo contrario, es posible que desee explicar qué hace su comando Powershell
Dennis Nolte