PowerShell-Datei kopieren und umbenennen

Salman Mehmood 20 Juni 2023
PowerShell-Datei kopieren und umbenennen

Das Hauptziel dieses Artikels ist es, die grundlegendsten IO-Vorgänge zu demonstrieren, nämlich das Kopieren einer Datei und das anschließende Einfügen in ein anderes Verzeichnis oder an einen anderen Ort mit einem anderen Namen.

PowerShell-Datei kopieren und umbenennen

Beim Umgang mit CSV-Dateien kann es vorkommen, dass eine bestimmte CSV-Datei kopiert und an anderer Stelle mit ihrem aus der CSV-Datei extrahierten Dateinamen eingefügt werden muss.

Betrachten Sie die folgende CSV-Datei:

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

Jetzt müssen wir diese CSV kopieren und in ein anderes Verzeichnis mit einem benutzerdefinierten Namen einfügen, der aus einer Spalte aus der CSV-Datei stammt. In diesem Fall heißt die Spalte newfilename.

Betrachten Sie den folgenden Code:

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

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

Danach können wir überprüfen, ob die Datei kopiert wurde, indem wir Folgendes verwenden:

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

Mit dem obigen Code können wir die zu kopierende Datei aus einer der Spalten und den Namen der neuen zu speichernden Datei extrahieren.

Der Gesamtablauf des Programms ist wie folgt:

  1. Der Pfad der CSV-Datei, aus der Pfad und Dateiname extrahiert werden sollen, wird in einer Variablen namens csv gespeichert. Das Symbol $ wird hauptsächlich zum Deklarieren und Zugreifen auf/Setzen von Variablen in PowerShell verwendet.
  2. Der Befehl Import-csv extrahiert die Daten aus der CSV-Datei.
  3. Nachdem die relevanten Daten extrahiert wurden, werden sie mit dem | an den folgenden Befehl weitergeleitet. Operator.
  4. Der %-Operator (ein Alias für die foreach-Schleife) wird verwendet, um Daten aus den Spalten oldfilepath iterativ und newfilename zu extrahieren, die dann an den Copy-Item-Befehl übergeben werden, um die Datei zu kopieren von der angegebenen Quelle zum Ziel (in unserem Fall nicht in CSV angegeben).
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

Verwandter Artikel - PowerShell File