Cómo usar PowerShell para verificar si existe un archivo

28. mayo 2021 35296 puntos de vista   Powershell comprueba si el archivo existe

En esta S-Zone, Victor te enseña cómo usar PowerShell para comprobar si existe un archivo. La guía cubre varios ejemplos del uso de PowerShell para verificar si existe un archivo.





Para usar PowerShell para verificar si existe un archivo, use el ruta de prueba cmdlet. Sin embargo, puede incluir la ruta del archivo directamente en el ruta de prueba comando o almacenar el archivo en una variable. Luego usa la variable en ruta de prueba .



Explorar temas de publicaciones

Cómo usar PowerShell para verificar si existe un archivo sin una variable

  Cómo usar PowerShell para verificar si existe un archivo sin una variable

En esta sección aprenderá a ejecutar ruta de prueba Comando sin variable.



Puede ejecutar Test-Path como un comando independiente. Además, también puede combinar el comando con un SI Instrucción para realizar tareas adicionales basadas en el resultado de la ruta de prueba Dominio.



Cómo ejecutar Test-Path directamente sin una variable

En esta subsección, aprenderá cómo ejecutar Test-Path por sí solo (sin el resultado en un SI Explicación).

Tengo un archivo llamado procesos.txt en E: informes.



  Cómo usar PowerShell para verificar si existe un archivo

Para verificar si el archivo existe, escriba el siguiente comando en PowerShell y presione Entrar



|_+_|

Cuando presioné PowerShell regresó Verdadero , lo que significa que el archivo existe.

  Cómo usar PowerShell para verificar si existe un archivo

Sin embargo, cuando ejecuto el mismo comando en un archivo inexistente, PowerShell devuelve Incorrecto .

  Cómo usar PowerShell para verificar si existe un archivo

Cómo combinar la ruta de prueba y la declaración IF sin variable

Como mencioné antes, después de usar PowerShell Test-Path para verificar si existe un archivo, puede usar el resultado en un SI Instrucciones para realizar tareas de suma.

En este ejemplo estoy comprobando si E: eportsprocesses.txt existe, y si existe copio el archivo a C: informes. Aquí está el script que hace el trabajo.

Se recomienda ejecutar este comando. PowerShell-ISE |_+_|

Aquí está el resultado en PowerShell ISE y el archivo copiado en C: informes

  Cómo usar PowerShell para verificar si existe un archivo

Puedo hacer que el guión sea más inteligente agregando dos líneas adicionales.

|_+_|

y….

|_+_| El primer comando anterior muestra un mensaje cuando se copia el archivo. El segundo muestra un mensaje de que el archivo no existe.

Aquí está el script modificado...

|_+_|

Cómo usar PowerShell para verificar si existe un archivo con una variable

  Cómo usar PowerShell para verificar si existe un archivo con una variable

En la última sección, le mostré cómo usar PowerShell para verificar si existe un archivo sin usar variables. En esta sección almaceno el resultado de Test-Path en una variable. Luego usa la variable en un SI Explicación.

En el ejemplo de esta sección quiero comprobar si primer-archivo.txt existe en la ruta que se muestra en la imagen de abajo. Luego copio el archivo, si existe, a C:PS

  Cómo usar PowerShell para verificar si existe un archivo con una variable

En los primeros pasos ejecutaré el siguiente comando:

|_+_|

Este comando es el mismo que el último con una diferencia: el resultado del comando se guarda en el El archivo existe Variable.

  Cómo usar PowerShell para verificar si existe un archivo con una variable

Cómo usar PowerShell para verificar si existe un archivo y copiarlo

Cuando introduje esta sección, guardé la salida de ruta de prueba mando a la El archivo existe Variable.

|_+_|

En esta subsección te enseñaré cómo copiar el archivo si existe. te los presento SI explicación con el Copiar elemento Dominio.

|_+_|

Aquí está el script completo con los comandos combinados:

|_+_|

Y aquí está el script en PowerShell ISE.

Cómo usar PowerShell para verificar si existe un archivo y eliminarlo

En la última subsección, vio cómo verificar si existe un archivo y copiarlo. ¿Qué sucede si desea copiar el archivo en su lugar?

Si desea eliminar el archivo en lugar de copiarlo, reemplace el Copiar elemento comando con el remover el artículo Dominio.

Aquí está el script actualizado que usa la declaración IF de PowerShell para verificar si existe un archivo. Luego, si está presente, elimine...

|_+_|

Cómo usar PowerShell para verificar si existe un archivo; de lo contrario, salga

En algunas situaciones de secuencias de comandos de PowerShell, es posible que desee comprobar si existe un archivo. Luego, si corresponde, realice una tarea específica, como copiar o eliminar el archivo; de lo contrario, salga del script.

Para lograr esto, todo lo que tienes que hacer es agregar el De lo contrario bloquear el si Explicación.

En la última subsección, utilicé este script para eliminar un archivo si existe.

|_+_|

Si quiero que la secuencia de comandos se cierre cuando el archivo no existe, cambiaré la secuencia de comandos como se muestra a continuación...

|_+_|

Aquí está la lógica del script modificado...

Compruebe si el archivo E: eportsfirst-file.txt existe. Si está presente, elimine el archivo.

Sin embargo, si el archivo no existe, ejecute el comando en el De lo contrario bloquear el si Explicación. En este caso el comando está en el De lo contrario bucle es la palabra Romper .

Romper le dice a PowerShell que deje de procesar el script. También puedes agregar Romper en el bloque if de la declaración - bajo el comando remove-item...

|_+_|

Cómo usar PowerShell para verificar que un archivo existe y no está vacío

Esta es otra condición común en las secuencias de comandos de PowerShell: comprobar que existe un archivo y que no está vacío. Esto puede aplicarse a los archivos de registro.

Por ejemplo, si tiene una aplicación que crea y actualiza archivos de registro, puede escribir un script de PowerShell que busque nuevos archivos de registro para actualizar.

Para probar aún más si un archivo existe, use el ruta de prueba Dominio. Sin embargo, para verificar si el archivo está vacío, debe introducir otro comando, Obtener elemento secundario .

En este escenario, puede utilizar el Obtener elemento secundario comando de dos maneras.

como , si desea verificar si un solo archivo está vacío, puede ejecutar Obtener elemento secundario Comando usando la ruta completa del archivo como Lejos Parámetro. dos , alternativamente, si desea verificar un conjunto de archivos en una carpeta, use la ruta de la carpeta como Lejos Parámetro.

En esta sección daré un ejemplo que verifica si un archivo específico existe y está vacío. Cubriré la segunda opción en el Cómo usar PowerShell para verificar si existe un archivo en una carpeta A más adelante en esta guía.

En este ejemplo quiero comprobar si el archivo, primer-archivo.txt y cuando está vacío.

  Cómo usar PowerShell para verificar que un archivo existe y no está vacío

Como mencioné anteriormente, el primer paso es Obtener elemento secundario Comando usando la ruta completa del archivo como Lejos Parámetro. Primero, ejecuta el siguiente comando...

|_+_|

Aquí está el resultado del comando. Del resultado del comando puede ver que el archivo tiene una propiedad llamada Largo .

Efectivamente, el Largo La propiedad de un archivo indica el tamaño del archivo. Además, si un archivo está vacío, el Largo ser cero (0).

Entonces, para usar PowerShell para verificar si Not está vacío, verificamos si el Largo NO es cero (0).

Para lograr esto, cambiaré el último comando como se muestra a continuación...

|_+_|

Aquí está el resultado del comando en PowerShell. Dado que el tamaño de mi archivo es 0 (vacío) en este caso, el comando devolvió incorrecto .

  Cómo usar PowerShell para verificar que un archivo existe y no está vacío

Esto significa que este archivo está vacío.

poner kodi en smart tv

Pero, ¿cómo incluimos el bit que prueba si el archivo existe? ¡Qué bueno que preguntaste!

Para presentar la lógica que usa PowerShell para verificar si existe un archivo y también para verificar si el archivo NO está vacío, compartiré partes de nuestro script anterior y el Obtener elemento secundario comando de arriba.

Aquí está mi script modificado...

|_+_|

En esta versión modificada del script hice los siguientes cambios...

  1. En la línea 2 lo guardé Obtener elemento secundario Comando que comprueba si un archivo está vacío - en una variable llamada $checkiffileistleer .
|_+_|
  1. Luego agregué otra condición en la línea 3 si Explicación. La condición parte de la si declaración actualizada a If (($fileexists -eq $True) -and ($checkiffileisempty -eq $False))

    Esta condición prueba si lo que se almacena $archivoexiste es Verdadero (El archivo existe). También se comprueba si hay algo almacenado. $checkiffileisempt es Incorrecto (el archivo está vacío).

    De hecho, PowerShell comprueba si el ruta de prueba Comando que comprueba si existe la ruta del archivo Verdadero . Además, también comprueba si el Obtener elemento secundario Comando que comprueba si el archivo NO está vacío Incorrecto (lo que significa que el archivo está vacío)
  2. Finalmente, si se cumplen ambas condiciones, en la línea 4, PowerShell ejecuta el comando dentro del corchete {} de la instrucción If.

    En este ejemplo, tengo este comando entre corchetes {} de la instrucción if.
|_+_|

El comando pega el texto en el valor parámetros de establecer contenido Dominio.

Para probar si el script funciona, cópielo en PowerShell ISE y ejecútelo...

  Cómo usar PowerShell para verificar que un archivo existe y no está vacío

Una vez que ejecuté el script, el archivo, primer-archivo.txt – que antes estaba vacío – ahora contiene algunos valores. Además, ¡el tamaño del archivo ya no es cero (0)!

Cómo usar PowerShell para verificar si existe un archivo en una carpeta

  Cómo usar PowerShell para verificar si existe un archivo en una carpeta

Hasta ahora, esta guía ha cubierto varios escenarios para usar PowerShell para verificar si existe un archivo.

En esta sección quiero profundizar en las carpetas. En particular, aprenderá a comprobar si existe un archivo en la carpeta actual o en todas las subcarpetas.

También aprenderá a usar PowerShell para verificar si un archivo existe en varias carpetas. Finalmente, le mostraré cómo usar un comodín para verificar si existe un archivo.

Cómo usar PowerShell para verificar si existe un archivo en la carpeta actual

En este primer ejemplo, aprenderá a comprobar si existe un archivo en la carpeta actual, sin todas las subcarpetas.

En este ejemplo, quiero verificar si los archivos con la extensión de archivo .log en la carpeta E: los informes están disponibles. Sin embargo, quiero excluir todas las subcarpetas.

El primer paso es ejecutar el Obtener elemento secundario Dominio. Luego dirige la salida donde objeto y filtrar por PSIsContainer Propiedad.

Del PSIsContainer Property es una propiedad que define carpetas o directorios. en el donde objeto Especifiqué el comando $_.PSIsContainer -ne $true. Este comando simplemente establece que no se debe devolver ningún artículo si este es el caso. PSIsContainer la propiedad es verdadera. Esto solo devuelve archivos.

Aquí está el comando...

|_+_|

Y aquí está el resultado en PowerShell...

  Cómo usar PowerShell para verificar si existe un archivo en la carpeta actual

El paso final es devolver la ruta completa de todos los archivos con la extensión .log en la carpeta actual.

Aquí está el comando...

|_+_|

Y el resultado…

A partir de este momento, si desea trabajar más en los archivos, puede canalizar la salida del último resultado a un Para cada Cinta. Entonces dentro del Para cada -Loop le permite ejecutar comandos adicionales.

Cómo usar PowerShell para verificar si existe un archivo en subcarpetas

Si desea verificar si un archivo o archivos específicos existen en todas las subcarpetas y no en la carpeta actual, debe realizar cambios menores en el Obtener elemento secundario Dominio.

Especialmente si los estás ejecutando Obtener elemento secundario mando, en donde objeto , tu filtras donde objeto para devolver carpetas solamente.

|_+_|

El comando devuelve la ruta completa a todas las subcarpetas en la carpeta especificada...

En el siguiente paso necesitas usar Para cada -Instrucción para iterar a través de todas las carpetas devueltas por el último comando. Entonces dentro del Para cada instrucción, ejecutar otra Obtener elemento secundario comando para cada subcarpeta.

Hay tres variantes de Para cada pero en este ejemplo usaré el Para cada -Objeto-Cmdlet.

|_+_|

El comando muestra todos los archivos de registro en las subcarpetas...

  Cómo usar PowerShell para verificar si existe un archivo en subcarpetas

Cómo usar PowerShell para verificar si existe un archivo en la carpeta actual y todas las subcarpetas

En las últimas 2 subsecciones tengo el PSIsContainer propiedad para filtrar las subcarpetas o devolver solo las subcarpetas. En este ejemplo eliminaré esos PSIsContainer Propiedad.

Sin embargo, presentaré uno Obtener elemento secundario parámetros de comando, llamados recaída . Del recaída fuerzas paramétricas Obtener elemento secundario para comprobar la carpeta especificada y todas sus subcarpetas.

Aquí hay un script modificado.

|_+_|

Del recaída El parámetro se introduce en la primera Obtener elemento secundario Dominio. En el segundo no es necesario Obtener elemento secundario comando (dentro del para cada objeto Bloquear).

Aquí está el resultado del comando. Esta vez, el informe incluye todos los archivos de registro en la carpeta superior y todas sus subcarpetas.

Cómo usar PowerShell para verificar si existe un archivo en una computadora remota

  Cómo usar PowerShell para verificar si existe un archivo en una computadora remota

Si desea probar si un archivo existe en una computadora remota, puede usar el mismo principio que se describe en todos los ejemplos de esta guía.

Sin embargo, debe introducir un nuevo comando llamado Invocar comando . Entonces dentro del Invocar comando mando, usa su bloque de secuencias de comandos parámetro para especificar uno de los comandos discutidos anteriormente en esta guía.

Otra cosa importante a tener en cuenta es que es posible que deba proporcionar un nombre de usuario y una contraseña para una cuenta con permiso para conectarse a la computadora remota.

Además, la cuenta especificada debe tener permiso para ejecutar el comando en el bloque de secuencias de comandos Parámetros - en la computadora remota.

Finalmente, utilice el Nombre del ordenador -Parámetro para especificar el nombre del equipo remoto.

Como referencia, aquí está la sintaxis general del Invocar comando Dominio.

|_+_|

Para leer más sobre el Invocar comando Consulte Referencias y lecturas adicionales al final de esta guía para conocer el comando.

¡Espero haber tenido éxito al enseñarle cómo usar PowerShell para verificar si existe un archivo!

También espero que S-Zone te haya resultado útil. Si te resultó útil, por favor vota y a la pregunta ¿Fue útil esta publicación a continuación?

Alternativamente, puede hacer una pregunta, dejar un comentario o proporcionar comentarios utilizando el formulario 'Dejar una respuesta' en la parte inferior de esta página.

Finalmente, para obtener más zonas Email Tech S, consulte nuestra página de procedimientos de Windows PowerShell. También puede encontrar muy útil nuestra página Trabajar desde casa.

Referencias y lecturas adicionales

  1. Invocar comando
  2. Powershell, si se explica lo contrario: sintaxis y ejemplos
  3. Obtener elemento secundario
  4. ruta de prueba