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:
- 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. - Der Befehl
Import-csv
extrahiert die Daten aus der CSV-Datei. - Nachdem die relevanten Daten extrahiert wurden, werden sie mit dem
|
an den folgenden Befehl weitergeleitet. Operator. - Der
%
-Operator (ein Alias für dieforeach
-Schleife) wird verwendet, um Daten aus den Spaltenoldfilepath iterativ
undnewfilename
zu extrahieren, die dann an denCopy-Item
-Befehl übergeben werden, um die Datei zu kopieren von der angegebenen Quelle zum Ziel (in unserem Fall nicht in CSV angegeben).
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