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?

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 }

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}

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

0

@bourne casi lo tuvo:

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.