Copier un fichier et renommer avec PowerShell

Copier un fichier et renommer avec PowerShell

L’objectif principal de cet article est de démontrer l’opération d’E/S la plus basique, copier un fichier puis le coller dans un autre répertoire ou emplacement avec un nom différent.

PowerShell Copier Fichier et Renommer

Lors de la manipulation de fichiers CSV, il peut être nécessaire de copier un fichier CSV spécifique et de le coller ailleurs avec son nom de fichier extrait du CSV.

Considérons le CSV suivant :

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

Nous devons maintenant copier ce CSV et le coller dans un autre répertoire avec un nom personnalisé, qui provient d’une colonne du fichier CSV. Dans ce cas, la colonne s’appelle newfilename.

Considérons le code suivant :

$csv = "D:\\old.csv"

Import-Csv $csv | % { Write-Host "Copying $($_.oldfilepath) to D:\TEST\$($_.newfilename)..." | Copy-Item $_.oldfilepath -Destination "D:\TEST\$($_.newfilename)" }

Après cela, nous pouvons vérifier que le fichier a été copié en utilisant le suivant :

> .\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

En utilisant le code ci-dessus, nous pouvons extraire le fichier à copier d’une des colonnes et le nom du nouveau fichier à enregistrer.

Le flux général du programme est le suivant :

  1. Le chemin du fichier CSV pour extraire le chemin et le nom de fichier est stocké dans une variable nommée csv. Le symbole $ est principalement utilisé pour déclarer et accéder/réinitialiser des variables en PowerShell.
  2. La commande Import-csv extrait les données du fichier CSV.
  3. Après que les données pertinentes ont été extraites, elles sont envoyées à la commande suivante en utilisant l’opérateur |.
  4. L’opérateur % (un alias pour la boucle foreach) est utilisé pour extraire les données des colonnes oldfilepath de manière itérative et newfilename, qui sont ensuite passées à la commande Copy-Item pour copier le fichier de la source donnée à la destination (non spécifiée dans le CSV dans notre cas).
Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Salman Mehmood avatar Salman Mehmood avatar

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.

LinkedIn

Article connexe - PowerShell File