So erstellen Sie Dateien und Ordner mit PowerShell

Wenn Sie Dateien und Ordner auf einem Windows-PC erstellen müssen, scheint die Verwendung der GUI der intuitivste Weg zu sein. Allerdings kann PowerShell intelligent mehrere Dateien und Ordner in großen Mengen erstellen. Dies ist eine ziemlich häufige Aufgabe für fast jeden IT-Experten, und in diesem Leitfaden zeigen wir Ihnen, wie Sie Ihre Dateien und Ordner unter Verwendung des New-Item PowerShell-Cmdlets erstellen können.

Wie man eine Datei in PowerShell erstellt

Wenn Sie einmal verstanden haben, wie man PowerShell verwendet, wird die Geschwindigkeit, mit der Sie Dinge erstellen können, mundane Aufgaben viel einfacher machen. Lassen Sie uns eintauchen und uns ansehen, wie man Dateien und Ordner mithilfe der New-Item, Add-Content und Test-Path Cmdlets erstellt.

Anzeige

Wie man eine Datei mit dem New-Item-Befehl erstellt

Eine neue Datei mit PowerShell zu erstellen, kann mit dem New-Item Cmdlet durchgeführt werden. Wenn ich eine neue Textdatei namens MyTextFile.txt erstellen wollte, wäre die Syntax wie folgt:

New-Item MyTextFile.txt
Creating a file using the New-Item cmdlet

Im obigen Beispiel hat PowerShell eine Datei im c:-Verzeichnis erstellt. Ich kann jedoch einfach einen anderen Speicherort angeben, indem ich den Pfad zum Dateinamen hinzufüge. Hier ist ein Beispiel unten:

New-Item c:\tools\MyNewFile.txt
Creating a file in a different folder

Beachten Sie, dass ich im obigen Bildschirmfoto im temp-Verzeichnis war, aber die Datei im tools-Verzeichnis erstellt habe. Sobald Sie vertraut sind damit, eine neue Datei zu erstellen, ist es nur noch eine weitere Codezeile, die Sie hinzufügen müssen, um Dateien in großen Mengen zu erstellen.

Hier ist ein Beispiel, wie Sie eine einfache ForEach-Schleife verwenden, um 10 Dateien mit einem ähnlichen Dateinamen zu erstellen.

Werbung

(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}
Create multiple files with a simple loop

Bei Bedarf können Sie auch das Get-ChildItem-Cmdlet verwenden, um alle Dateien in diesem Verzeichnis aufzulisten.

Erstellen Sie eine Datei, nachdem überprüft wurde, dass sie noch nicht existiert

Sie können auch PowerShell verwenden, um zu überprüfen, ob Dateien bereits vorhanden sind, bevor Sie versuchen, sie zu erstellen. Es gibt mehrere Möglichkeiten, um mit PowerShell zu testen, ob Dateien bereits vorhanden sind, aber der einfachste Weg ist die Verwendung des Test-Path-Cmdlets.

Wie der Name schon sagt, kann das Test-Path-Cmdlet überprüfen, ob ein Pfad existiert. Sie können nach Dateipfaden und/oder Ordnern suchen. Das Cmdlet gibt True zurück, wenn eine Datei oder ein Ordner existiert, und False, wenn nicht.

Im folgenden Beispiel überprüfe ich, ob die Datei mit dem Namen MyTextFile.txt existiert. Da die Datei existiert, gab das Test-Path-Cmdlet True zurück:

Werbeanzeige

Test-Path MyTextFile.txt
Using test-Path to see if a file exists

Nachdem Sie gelernt haben, wie man überprüft, ob eine Datei existiert, können Sie den Test-Path-Befehl mit einer If-Anweisung verwenden, um eine Datei zu erstellen, wenn Test-Path false zurückgibt. Ich werde Ihnen zeigen, wie das im folgenden Beispiel geht:

  • Hier verwende ich eine Variable namens $FileName für den Dateinamen, um meinen Code lesbarer zu gestalten und wiederholtes Tippen zu vermeiden.
  • Dann habe ich eine If-Anweisung hinzugefügt, um nach einer Datei zu suchen. Die runden Klammern enthalten die Bedingung, die überprüft werden soll. Die geschweiften Klammern enthalten den Code, den ich ausführen möchte, wenn der Test wahr ist. Beachten Sie, dass der -not-Operator in meinem Beispiel verwendet wird.
  • Der Code besagt, dass falls die Datei mit dem Namen MyTextFile.txt nicht existiert, dann die Datei erstellt werden sollte. Eine If-Anweisung wird nur ausgeführt, wenn die Bedingung wahr ist.
  • I have added the -not parameter to change the condition to match on False instead of True.
$Filename = "MyTextFile.txt"
if (-not(test-path $Filename)){new-item $FileName}
Checking if a file exists and creating a new file if it doesn’t exist

Lassen Sie uns gemeinsam die Ausgabe durchgehen, damit wir genau wissen, was passiert ist: Im Beispiel 1 habe ich meinen Code ausgeführt und es ist nichts passiert; beachten Sie, dass es keine Ausgabe gibt. Das liegt daran, dass in meinem c:-Verzeichnis bereits eine Datei mit dem Namen MyTextFile.txt existiert. Da sie existiert, hat die If-Anweisung den Code nicht ausgeführt.

Im Beispiel 2 können Sie jedoch feststellen, dass ich das Verzeichnis vom Temp-Verzeichnis auf das Tools-Verzeichnis geändert habe. Da in letzterem keine Datei mit dem Namen MyTextFile.txt vorhanden ist, führt das if-Statement beim zweiten Ausführen des Codes das New-Item-Cmdlet aus und erstellt eine neue Datei.

Wie man Daten in eine neue oder bestehende Datei schreibt

Wir haben bereits gesehen, wie man neue Dateien mit PowerShell erstellt. Schauen Sie sich jedoch die vorherigen Bildschirmaufnahmen an und bemerken Sie, dass die Dateigröße aller neuen Dateien 0 Bytes beträgt. Das liegt daran, dass das New-Item-Cmdlet tatsächlich leere Dateien erstellt.

Wenn Sie Daten zu einer vorhandenen Datei hinzufügen möchten, können Sie das Add-Content-Cmdlet verwenden. Die Syntax ist einfach zu verstehen, ganz ähnlich wie beim New-Item-Befehl. Hier ist ein Beispiel unten:

Add-Content mytextfile.txt -Value "Here's some sample text written via PowerShell"

Als Nächstes kann ich meine Datei mithilfe des Get-Content-Cmdlets überprüfen.

get-content .\mytextfile.txt
Adding content to an existing file

I can also open the file in PowerShell using the Invoke-Item cmdlet.

Invoke-Item .\mytextfile.txt
Opening a file with the Invoke-Item cmdlet

Wie man eine vorhandene Datei überschreibt

Wenn PowerShell zum Erstellen neuer Dateien verwendet werden kann, können wir es auch verwenden, um vorhandene Dateien in einem Ordner zu ersetzen. PowerShell warnt Sie, wenn Sie versuchen, eine Datei zu erstellen, während bereits eine mit demselben Namen existiert.

Im folgenden Beispiel können Sie die Fehlermeldung sehen, die PowerShell anzeigt, wenn ich versuche, eine Datei mit dem Namen MyNewFile3.txt zu erstellen.

New-item .\MyNewFile3.txt
PowerShell warns of an existing file with the same name

Wenn ich jedoch diese Datei ersetzen möchte, kann ich das tun, indem ich den Parameter -force hinzufüge, der jede vorhandene Datei mit demselben Namen überschreibt.

new-item .\MyNewFile3.txt -Force
Overwriting a file using the -force parameter

Ordner in PowerShell erstellen

Wir haben gerade die verschiedenen Möglichkeiten durchgegangen, Dateien in PowerShell zu erstellen. Jetzt schauen wir uns an, wie man Ordner mit den Befehlen New-item und md erstellt.

Erstellen eines Ordners mit dem Befehl New-item

Das Erstellen von Ordnern mit PowerShell ist auch eine einfache Aufgabe mit demselben Befehl New-Item, den wir zuvor zum Erstellen von Dateien verwendet haben. Alles, was wir tun müssen, ist, den -ItemType-Parameter anzugeben.

Der -ItemType-Parameter steuert, ob der Befehl New-Item eine Datei, ein Verzeichnis (Ordner), einen symbolischen Link, einen Verknüpfungspunkt oder einen harten Link erstellt. Weitere Informationen zu diesen Optionen finden Sie auf der Microsoft Docs-Seite für New-Item.

Das Erstellen eines neuen Ordners mit PowerShell ist ähnlich wie das Erstellen einer neuen Datei. Hier ist ein Beispiel mit dem folgenden Befehl:

new-item TestFolder1 -ItemType Directory
Creating a folder using the New-Item cmdlet

Erstellen Sie einen Ordner mit dem Befehl md

PowerShell ist mittlerweile eine plattformübergreifende Sprache, was bedeutet, dass sie auf Windows, macOS oder Linux ausgeführt werden kann. Der Prozess zum Erstellen von Dateien und Ordnern in Windows, Linux und macOS von der Befehlszeile aus ist ähnlich.

Jedoch hat jedes Betriebssystem eigene Befehle mit unterschiedlichen Namen für dieselben Aufgaben. Zum Beispiel hat jedes Betriebssystem eine ähnliche Syntax mit unterschiedlichen Befehlsnamen, um einen neuen Ordner namens NewDirectory zu erstellen: In DOS lautet die Syntax „MD NewDirectory“, aber in Linux lautet sie „MKDIR NewDirectory“.

Microsoft hat viele der beliebten Befehlsnamen aus anderen Sprachen übernommen und in PowerShell aufgenommen. Befehle wie MKDIR oder MD existieren tatsächlich nicht in PowerShell: Stattdessen sind sie nur Aliasnamen für ihre PowerShell-Pendants, die dasselbe tun.

In PowerShell ist MD ein Alias für MKDIR. Außerdem ist MKDIR ein Alias für den Befehl New-Item. Das bedeutet, wenn Sie MD, MKDIR oder New-Item in PowerShell eingeben, haben all diese Befehle den gleichen Effekt: Sie führen den Befehl New-Item aus.

Hier ist ein schnelles Beispiel, um diese Funktionalität zu verdeutlichen.

md Demofile1.txt
mkdir demofile2.txt
new-item demofile 3.txt
Creating new files with PowerShell aliases

In den obigen Beispielen können Sie sehen, dass ich drei Dateien mit den verschiedenen Aliasnamen und Befehlsnamen für New-Item erstellt habe. Die Aliasnamen funktionieren genau wie die Eingabe von New-Item.

Abschluss

PowerShell bietet viele Möglichkeiten, Dateien und Ordner zu erstellen. Der New-Item-Befehl macht es unglaublich einfach, Dateien und Ordner zu erstellen.

Microsoft hat Aliasse eingefügt, die auf Befehle aus beliebten Betriebssystemen wie DOS und Linux in PowerShell verweisen, um Admins ein vertrautes Gefühl zu geben. Wir können auch Schleifen verwenden, um Dateien und Ordner im großen Maßstab zu erstellen und Logik-Anweisungen wie If, um sicherzustellen, dass wir nur Dateien erstellen, die noch nicht existieren.

Wir können auch sicherstellen, dass vorhandene Dateien nicht versehentlich durch Code überschrieben werden, es sei denn, wir möchten, dass sie ersetzt werden. All diese Optionen ermöglichen es uns, Skripte zu erstellen, um den langweiligen Prozess der Verwaltung von Dateien und Ordnern zu automatisieren.

PowerShell ist ein sehr vielseitiges Tool, und jetzt, da Sie gelernt haben, wie Sie damit Dateien und Ordner erstellen können, können Sie auch unseren vorherigen Leitfaden zu Verwendung von PowerShell zum Löschen von Dateien und Ordnern lesen.

Source:
https://petri.com/powershell-how-to-create-files-folders/