Copia file e rinomina PowerShell

L’obiettivo principale di questo articolo è dimostrare l’operazione base di IO, copiare un file e poi incollarlo in un’altra directory o posizione con un nome diverso.
Copia File PowerShell e Rinomina
Quando si lavora con file CSV, può capitare che sia necessario copiare un file CSV specifico e incollarlo altrove con il suo nome estratto dal CSV.
Considera il seguente 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
Ora dobbiamo copiare questo CSV e incollarlo in un’altra directory con un nome personalizzato, che proviene da una colonna del file CSV. In questo caso, la colonna si chiama newfilename
.
Considera il seguente codice:
$csv = "D:\\old.csv"
Import-Csv $csv | % { Write-Host "Copying $($_.oldfilepath) to D:\TEST\$($_.newfilename)..." | Copy-Item $_.oldfilepath -Destination "D:\TEST\$($_.newfilename)" }
Dopo di che, possiamo verificare che il file sia stato copiato utilizzando il seguente:
> .\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
Utilizzando il codice sopra, possiamo estrarre il file da copiare da una delle colonne e il nome del nuovo file da salvare.
Il flusso generale del programma è il seguente:
- Il percorso del file CSV da cui estrarre il percorso e il nome del file è memorizzato in una variabile chiamata
csv
. Il simbolo$
è principalmente usato per dichiarare e accedere/impostare variabili in PowerShell. - Il comando
Import-csv
estrae i dati dal file CSV. - Dopo che i dati rilevanti sono stati estratti, vengono inviati al comando successivo utilizzando l’operatore
|
. - L’operatore
%
(un alias per il cicloforeach
) è usato per estrarre dati dalle colonneoldfilepath
in modo iterativo enewfilename
, che vengono quindi passati al comandoCopy-Item
per copiare il file dalla sorgente data alla destinazione (non specificata nel CSV nel nostro 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.
LinkedInArticolo correlato - PowerShell File
- Come caricare file con FTP in PowerShell
- Come creare un file di testo utilizzando Windows PowerShell
- Come estrarre il nome del file da un percorso utilizzando PowerShell
- Come leggere i file riga per riga in Windows PowerShell
- Come memorizzare il contenuto di un file di testo in una variabile utilizzando PowerShell
- Come ottenere il percorso completo dei file in PowerShell