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.