Mover archivos y carpetas con PowerShell

  1. Comprobar si existe un archivo o una carpeta mediante PowerShell
  2. Creación de archivos y carpetas con PowerShell
  3. Mover archivos y carpetas con PowerShell
Mover archivos y carpetas con PowerShell

Mover archivos y carpetas es una operación fundamental cuando se utiliza el sistema operativo Windows, o quizás cualquier sistema operativo. Podemos transferir archivos o carpetas uno por uno o en masa simplemente arrastrándolos y soltándolos en nuestra pantalla, pero es posible que debamos considerar la creación de secuencias de comandos si solo necesitamos mover muchos archivos en particular (como archivos con formatos de archivo específicos).

Este artículo analizará varios cmdlets esenciales al mover archivos y directorios mediante secuencias de comandos de PowerShell para la corrección masiva.

Comprobar si existe un archivo o una carpeta mediante PowerShell

El comando Test-Path es un cmdlet integrado nativo de PowerShell que devuelve True o False dependiendo de si existe un archivo o una ruta de directorio. Podemos usar el comando de PowerShell Test-Path si necesitamos consultar si existe un solo archivo.

Para demostrarlo, cree un archivo (test.txt) en su directorio de trabajo actual o seleccione cualquier otro archivo existente. Una vez que hayamos seleccionado nuestro archivo de prueba, ejecute el siguiente comando, reemplazando la ruta (C:\Temp\PS) y el nombre del archivo (test.txt).

El comando Test-Path devolverá un valor booleano cuando se ejecute.

Dominio:

Test-Path C:\Temp\PS\test.txt

En el ejemplo anterior, el comando devuelve un valor True si existe el archivo (test.txt). De lo contrario, veremos un valor False que se muestra en la consola.

Creación de archivos y carpetas con PowerShell

El comando Nuevo elemento de Windows PowerShell crea archivos y directorios. A continuación se muestran dos ejemplos del uso del cmdlet New-Item de Windows PowerShell para crear un archivo y una carpeta.

Dominio:

# Create a Folder
New-Item -ItemType 'Directory' -Name 'C:\Temp\PS'

# Create a File
New-Item -ItemType 'File' -Name 'Test.txt' -Path '.\PS'

Mover archivos y carpetas con PowerShell

El comando de movimiento de archivo de PowerShell, cmdlet Move-Item, funciona para mover archivos o directorios individuales y ofrece capacidades de filtrado para ayudar a transferir contenido rápidamente de una ubicación a la siguiente.

En el siguiente ejemplo, movemos el archivo creado anteriormente, TestFile.txt, al directorio principal. Usando la sintaxis de .. para indicar el directorio principal desde la ubicación actual, use el comando Move-Item de Windows PowerShell para mover el archivo.

Dominio:

Move-Item -Path '.\TestFile.txt' -Destination '..'

No solo podemos mover archivos sino que también podemos mover carpetas usando el comando Move-Item.

Primero, necesitamos especificar el valor del parámetro -Path a la carpeta que necesitamos mover. Tenga en cuenta que hemos eliminado la extensión de archivo del parámetro -Path.

Dominio:

Move-Item -Path '.\PSScripts` -Destination '..'

Tal vez queramos transferir nuestros archivos y carpetas a una carpeta que no sea el padre directo de nuestro directorio de trabajo. Luego, podemos proporcionar el parámetro -Destino con un directorio personalizado.

Dominio:

Move-Item -Path '.\PSScripts` -Destination 'C:\Temp'

Si la carpeta de destino proporcionada en el parámetro -Destino no existe, el script arroja un error. La advertencia al usar el cmdlet Move-Item es que no crea un nuevo directorio si el directorio de destino no existe.

Podemos usar nuestros comandos Test-Path y New-Item mencionados anteriormente para solucionar esto. En el siguiente bloque de script, primero verificaremos la ruta de destino para ver si existe.

Si la carpeta no existe, el script la crea primero. Una vez creado, ahora iniciará la transferencia de archivos o carpetas.

Código:

$current_folder = "C:\Temp\PS"
$new_folder = "C:\PS\PSScripts"

if (Test-Path -path $new_folder) {
    Move-Item -Path $current_folder -Destination $new_folder
}else{
    New-Item -ItemType 'Directory' -Name $new_folder
    Move-Item -Path $current_folder -Destination $new_folder
}
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell File