Si está tratando de eliminar un elemento en particular, independientemente del tipo de archivo, primero deberá verificar si existe o no. De lo contrario, es probable que encuentre un error inesperado.
Aunque verificar y eliminar archivos es relativamente fácil con la GUI de Windows, aún debe navegar a varias ventanas solo para eliminar un solo archivo. Por otro lado, Powershell te permite hacer la misma tarea usando comandos simples y cortos.
Bueno, simplemente puede usar el cmdlet Remove-Item para eliminar un archivo específico de la ruta dada. Sin embargo, hay varios comandos y una gran cantidad de métodos para verificar si el elemento que está tratando de eliminar existe o no.
Con respecto a lo mismo, este artículo lo guiará con los diversos comandos y técnicas útiles para verificar y eliminar los archivos existentes en Windows Powershell.
¿Cómo verificar y eliminar un archivo existente en Powershell?
Windows Powershell es un terminal que permite a los usuarios automatizar tareas utilizando lenguajes de secuencias de comandos. Por lo tanto, crear, leer, actualizar o eliminar archivos con esta utilidad es fácil de entender e implementar.
Probablemente, ha intentado verificar si existe un archivo en Bash, Símbolo del sistema y GUI de Windows. Ahora, en esta sección, aprenderá diferentes comandos para hacerlo en Powershell y eliminarlo si es necesario.
Uso de ruta de prueba
Test-Path es un comando que determina si existe la ruta/dirección proporcionada. Básicamente, ejecutar este cmdlet en Powershell genera una expresión booleana . Aquí, True indica que el archivo al que intenta acceder existe y False significa que no existe. A continuación se muestra la sintaxis de Test-Path:Test-Path <Path>
Por ejemplo, para verificar si el archivo "texto.txt" existe dentro del directorio Documentos y eliminarlo, esto es lo que puede hacer:
- En la ventana de Powershell, copie y pegue el siguiente comando:
Test-Path Documents\text.txt
- Ahora, presione enter, y debería obtener el valor 'Verdadero' si existe.
De lo contrario, obtendrá el valor 'Falso' como se muestra a continuación. - Si existe, ahora puede usar el siguiente comando para eliminar el archivo:
Remove-Item Documents\text.txt
Sin embargo, si intenta eliminar el archivo que no existe, recibirá un mensaje de error como el siguiente.
Si no prefiere las expresiones booleanas, puede usar las declaraciones if y else para generar mensajes reales. Además, escribir este código simple lo ayudará a eliminar el archivo existente sin tener que ejecutar varios comandos:
$MyFile = "Documents\text.txt"
if (Test-Path $MyFile) {
Remove-Item $MyFile
Write-Host "The file was found and has been deleted successfully."
}
else
{
Write-Host "The file you're searching for doesn't exist."
}
En el código anterior, básicamente representamos la ubicación mediante la variable MyFile. Ahora, if (Test-Path $MyFile)
determina si la ruta existe o no .
Si es así, aparecerá el mensaje "El archivo se encontró y se eliminó correctamente". y el Remove-Item $MyFile
comando elimina su archivo.
Para asegurarse de esto, puede usar de Test-Path Documents\text.txt
nuevo, y debería obtener el resultado Falso.
Sin embargo, si el archivo no existe, simplemente encontrará el mensaje "El archivo que está buscando no existe". mensaje en lugar del error No se puede encontrar la ruta como antes.
Uso de Obtener elemento
Usar Get-Item es tan simple como usar Test-Path. Sin embargo, este cmdlet no determina si existe un archivo mediante expresiones booleanas. En su lugar, muestra el modo de su archivo, la última hora de escritura, la longitud y el nombre, junto con su tipo . A continuación se muestra la sintaxis de Get-Item:Get-Item <Path>
Siga las instrucciones a continuación para saber cómo identificar y eliminar un archivo existente mediante el cmdlet Get-Item. Para fines de demostración, eliminaremos un archivo de imagen “ image.bmp
” del directorio Documentos:
- Después de iniciar Powershell, pegue el siguiente comando:
Get-Item Documents\image.bmp
- Presiona Enter y obtendrás los detalles del archivo si el archivo existe.
De lo contrario, encontrará el error No se puede encontrar la ruta. - Si el archivo existe, ahora use el siguiente comando para eliminarlo del directorio:
Remove-Item Documents\image.bmp
Pero si el archivo no existe e intenta eliminarlo, volverá a encontrar el error No se puede encontrar la ruta.
Bueno, también puede usar el siguiente programa para verificar y eliminar un archivo existente en Powershell usando Get-Item
:
$MyFile = "Documents\image.bmp"
if(Get-Item $MyFile -ErrorAction Ignore)
{
Remove-Item $MyFile
Write-Host "The file was found and has been deleted successfully."
}
else
{
Write-Host "The file you're searching for doesn't exist and can’t be deleted."
}
En el script anterior, primero hemos asignado una variable MyFile que almacena la ruta del image.bmp
archivo. Luego, establecemos la condición if como Get-Item $MyFile -ErrorAction Ignore
, donde Get-Item $MyFile
obtiene el elemento de la ubicación y ErrorAction Ignore
descartará el error si el archivo no existe.
Básicamente, si su archivo existe, obtendrá el mensaje " El archivo se encontró y se eliminó correctamente " y el elemento se eliminará.
De lo contrario, encontrará "El archivo que está buscando no existe y no se puede eliminar".
Usando [System.IO.File]::Exists
System.IO
se ocupa de leer y escribir en los archivos de la biblioteca de clases de .NET Framework. Usando el espacio de nombres, podemos determinar rápidamente si existe un archivo. Luego, usando el Remove-Item
cmdlet, también es posible la eliminación.
Al igual que Test-Path, el comando [System.IO.File]::Exists también arroja una expresión booleana para determinar si un archivo existe o no. Esta es la sintaxis del [System.IO.File]::Exists
cmdlet:[System.IO.File]::Exists(“<Path>”)
Para una demostración, verifiquemos si existe un archivo de MS Word 'word.docx' en el directorio del documento y eliminemos este elemento:
- Ejecute el siguiente cmdlet en la ventana de Powershell:
[System.IO.File]::Exists("Documents\word.docx")
- Ahora, Powershell devuelve True si el archivo existe.
De lo contrario, la salida es Falsa. - Si el archivo que está buscando existe, use el siguiente comando para eliminarlo:
Remove-Item Documents\word.docx
Bueno, Powershell activa el error No se puede encontrar la ruta si intenta eliminar un archivo que no existe.
Además, puede probar el siguiente programa que adopta el cmdlet [System.IO.File]::Exists para eliminar un archivo existente en Windows Powershell:
$MyFile = "Documents\word.docx"
if([System.IO.File]::Exists($MyFile))
{
Remove-Item $MyFile
Write-Host "The file was found and has been deleted successfully"
}
else
{
Write-Host "The file you're searching for doesn't exist and can’t be deleted."
}
En el programa anterior, MyFile es una variable que almacena la ruta del archivo de MS Word. Ahora, usando el [System.IO.File]::Exists($MyFile)
, podemos saber si el elemento existe o no.
Ahora, en lugar de mostrar la expresión booleana, el Write-Host
cmdlet muestra " El archivo se encontró y se eliminó correctamente ". y elimina el archivo si existe.
Del mismo modo, recibe el mensaje: " El archivo que está buscando no existe y no se puede eliminar ". si la ruta no está bien establecida.
¿Cómo eliminar varios archivos existentes en Powershell?
A veces, es posible que desee eliminar varios archivos de una carpeta o directorio. En tal caso, Windows Powershell proporciona una función para eliminar todos los archivos o los archivos seleccionados de forma permanente.
En esta sección, discutiremos algunas formas fáciles y efectivas de verificar y eliminar múltiples archivos existentes en el programa Powershell.
Todos los archivos de una carpeta específica
Si desea eliminar todos los archivos de una carpeta en particular, independientemente del tipo de archivo o la extensión, este es el comando apropiado que puede usar:Remove-Item <Path>\*.*
Por ejemplo, revisemos los archivos dentro de la carpeta Ejemplo y eliminemos todos los archivos dentro de ella. Así es como puedes hacerlo:
- En primer lugar, use el siguiente comando para verificar los archivos dentro de la carpeta Ejemplo:
Get-ChildItem C:\Users\Bhishu\Desktop\Example
- Ahora, puede ejecutar el siguiente código para eliminar todos estos archivos:
Remove-Item C:\Users\Bhishu\Desktop\Example\*.*
- Para confirmar que se eliminaron todos sus archivos, use el
Get-ChildItem
cmdlet nuevamente, que no debería mostrar nada.
Archivos ocultos o de solo lectura
Bueno, eliminar todos los archivos no eliminará aquellos con atributos ocultos y de solo lectura. De hecho, si intenta eliminar dichos elementos, obtendrá el error No tiene suficientes derechos de acceso para realizar esta operación .
Por lo tanto, debe usar el parámetro -Force para eliminarlos a la fuerza:Remove-Item <Path> -Force
Pongamos un ejemplo para entender esto. Supongamos que tenemos un archivo oculto y de solo lectura, 'word.docx', dentro de la carpeta Ejemplo. Entonces, para eliminar esto, aquí está el comando correcto que debe usar:Remove-Item C:\Users\Bhishu\Desktop\Example\word.docx -Force
Ahora, no debería recibir el error. De hecho, puede validar esto usando el comando Test-Path para verificar si el archivo oculto ahora existe en la misma ubicación.
Todos los archivos del mismo tipo
Si no desea eliminar todos los archivos de una carpeta específica, sino que desea eliminar solo los elementos que tienen el mismo tipo de archivo, esta es la sintaxis que está buscando:Remove-Item <Path>*[file-type]
Por ejemplo, para eliminar todos los archivos que tienen la extensión .docx de la carpeta Ejemplo, siga los pasos a continuación:
- En primer lugar, ejecute el siguiente script para verificar qué archivos existen en la carpeta:
Get-Item C:\Users\bishu\Desktop\Example\*.*
Aquí,*.*
mostrará todos los archivos independientemente de su extensión. - Dado que solo está tratando de eliminar archivos que tienen el mismo tipo, use el siguiente comando que debería hacer el trabajo:
Remove-Item C:\Users\bishu\Desktop\Example\*.docx
Básicamente,*.docx
ayudará a eliminar todos esos archivos con la extensión .docx. Del mismo modo, puede reemplazarlo con cualquier tipo de archivo (.bmp, .txt, .jpeg), lo que eliminará solo aquellos archivos con la extensión correspondiente. - Finalmente, puede usar el comando Get-Item nuevamente para ver todos los archivos en la carpeta Ejemplo. De hecho, notará que todos los archivos .docx se eliminan.
0 Comentarios