PowerShell Copiar archivo y cambiar el nombre
El objetivo principal de este artículo es demostrar la operación más básica de IO, copiar un archivo y luego pegarlo en otro directorio o ubicación con un nombre diferente.
PowerShell Copiar archivo y cambiar el nombre
Al tratar con archivos CSV, puede darse el caso de que se requiera copiar un archivo CSV específico y pegarlo en otro lugar con su nombre de archivo extraído del CSV.
Considere el siguiente CSV:
iid firstname lastname profession oldfilepath newfilename
-- --------- -------- ---------- ----------- -----------
100 Annecorinne Fitzsimmons doctor D:\\old.csv new2.csv
101 Mallory Dunkin firefighter D:\\old.csv new3.csv
102 Carlie Torray firefighter D:\\old.csv new4.csv
103 Marleah Boycey worker D:\\old.csv new5.csv
104 Lusa Corabella worker D:\\old.csv new6.csv
105 Shandie Chesna worker D:\\old.csv new7.csv
106 Melisent Ochs doctor D:\\old.csv new8.csv
107 Cathie Hurley firefighter D:\\old.csv new9.csv
108 Kerrin Regan doctor D:\\old.csv new10.csv
109 Alie Lewes police officer D:\\old.csv new11.csv
110 Jsandye Gemini police officer D:\\old.csv new12.csv
111 Marguerite Myrilla police officer D:\\old.csv new13.csv
112 Florie Dichy developer D:\\old.csv new14.csv
113 Krystle Gaulin doctor D:\\old.csv new15.csv
114 Odessa Nerita developer D:\\old.csv new16.csv
Ahora necesitamos copiar este CSV y pegarlo en otro directorio con un nombre personalizado, que proviene de una columna del archivo CSV. En este caso, la columna se llama nuevonombredearchivo
.
Considere el siguiente código:
$csv = "D:\\old.csv"
Import-Csv $csv | % { write-host "Copying $($_.oldfilepath) to D:\TEST\$($_.newfilename)..." | Copy-Item $_.oldfilepath -Destination "D:\TEST\$($_.newfilename)" }
Después de lo cual, podemos verificar que el archivo se haya copiado usando lo siguiente:
> .\script.ps1
> ls D://TEST
Directory: D:\TEST
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/1/2022 10:27 PM 861 new10.csv
-a--- 11/1/2022 10:27 PM 861 new11.csv
-a--- 11/1/2022 10:27 PM 861 new12.csv
-a--- 11/1/2022 10:27 PM 861 new13.csv
-a--- 11/1/2022 10:27 PM 861 new14.csv
-a--- 11/1/2022 10:27 PM 861 new15.csv
-a--- 11/1/2022 10:27 PM 861 new16.csv
-a--- 11/1/2022 10:27 PM 861 new2.csv
-a--- 11/1/2022 10:27 PM 861 new3.csv
-a--- 11/1/2022 10:27 PM 861 new4.csv
-a--- 11/1/2022 10:27 PM 861 new5.csv
-a--- 11/1/2022 10:27 PM 861 new6.csv
-a--- 11/1/2022 10:27 PM 861 new7.csv
-a--- 11/1/2022 10:27 PM 861 new8.csv
-a--- 11/1/2022 10:27 PM 861 new9.csv
Usando el código anterior, podemos extraer el archivo a copiar de una de las columnas y el nombre del nuevo archivo a guardar.
El flujo general del programa es el siguiente:
- La ruta del archivo CSV para extraer la ruta y el nombre del archivo se almacena en una variable llamada
csv
. El símbolo$
se usa principalmente para declarar y acceder/establecer variables en PowerShell. - El comando
Importar-csv
extrae los datos del archivo CSV. - Una vez que se han extraído los datos relevantes, se canaliza al siguiente comando utilizando el
|
operador. - El operador
%
(un alias para el bucleforeach
) se utiliza para extraer datos de las columnasoldfilepath iterativamente
ynewfilename
, que luego se pasan al comandoCopy-Item
para copiar el archivo desde el origen dado hasta el destino (no especificado en CSV en nuestro caso).
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedInArtículo relacionado - PowerShell File
- Almacene el contenido del archivo de texto en variable usando PowerShell
- Consulta de la última hora de escritura del archivo en PowerShell
- Desbloquear archivos usando PowerShell
- Dividir archivo grande en PowerShell
- Leer archivo CSV línea por línea en PowerShell
- Buscar archivos con extensión en PowerShell