Startseite » wie man » So generieren Sie mit PowerShell zufällige Namen und Telefonnummern

    So generieren Sie mit PowerShell zufällige Namen und Telefonnummern

    Wenn Sie einen Datensatz für Tests oder Demonstrationen benötigen und dieser Satz personenbezogene Daten (PII) darstellen muss, möchten Sie im Allgemeinen keine echten Daten verwenden, die tatsächliche Personen darstellen. Hier erfahren Sie, wie Sie mit PowerShell eine Liste mit zufälligen Namen und Telefonnummern für eine solche Gelegenheit erstellen können.

    Was du brauchst

    Bevor Sie beginnen, sollten Sie einige Tools und Informationen haben, die Sie haben sollten:

    Power Shell

    Dieses Skript wurde mit PowerShell 4.0 entwickelt und auf Kompatibilität mit PowerShell 2.0 getestet. PowerShell 2.0 oder höher ist seit Windows 7 in Windows integriert. Sie ist auch für Windows XP und Vista als Teil des Windows Management Framework (WMF) verfügbar. Einige weitere Details und Links zum Herunterladen finden Sie unten.

    • PowerShell 2.0 wird mit Windows 7 geliefert. Benutzer von Windows XP SP3 und Vista (SP1 oder höher) können die entsprechende WMF-Version von Microsoft in KB968929 herunterladen. Es wird nicht unter XP SP2 oder niedriger oder Vista ohne SP1 unterstützt.
    • PowerShell 4.0 wird mit Windows 8.1 geliefert. Benutzer von Windows 7 SP1 können als Teil eines WMF-Updates vom Microsoft Download Center aus ein Upgrade durchführen. Es ist nicht für XP oder Vista verfügbar.

    Namen

    Sie benötigen einige Namenslisten, um in den Zufallsgenerator einzugeben. Eine großartige Quelle für einen Menge von Namen und Informationen bezüglich ihrer Beliebtheit (obwohl dies nicht für dieses Skript verwendet wird), ist das United States Census Bureau. Die Listen unter den folgenden Links sind sehr umfangreich. Wenn Sie also viele Namen und Zahlen auf einmal generieren möchten, können Sie sie ein wenig reduzieren. Bei unserem Testsystem dauerte die Generierung jedes Namens- / Nummernpaares etwa 1,5 Sekunden anhand der vollständigen Listen. Ihre Laufleistung hängt jedoch von Ihren eigenen Systemspezifikationen ab.

    • Nachnamen
    • Männliche Vornamen
    • Weibliche Vornamen

    Unabhängig von der verwendeten Quelle müssen Sie drei Textdateien generieren, die das Skript als Pools für die Namensauswahl verwenden kann. Jede Datei sollte nur Namen und nur einen Namen pro Zeile enthalten. Diese müssen im selben Ordner wie Ihr PowerShell-Skript gespeichert werden.

    Nachnamen.txt sollte die Nachnamen enthalten, aus denen das Skript ausgewählt werden soll. Beispiel:

    Smith Johnson Williams Jones Brown

    Männer.txt sollte die männlichen Vornamen enthalten, aus denen das Skript ausgewählt werden soll. Beispiel:

    James John Robert Michael William

    Frauen.txt sollte die weiblichen Vornamen enthalten, aus denen das Skript ausgewählt werden soll. Beispiel:

    Mary Patricia Linda Barbara Elizabeth

    Regeln für Telefonnummern

    Wenn Sie sicherstellen möchten, dass Ihre Telefonnummern nicht mit der tatsächlichen Telefonnummer eines anderen Benutzers übereinstimmen, verwenden Sie am besten den bekannten "555" Exchange Code. Wenn Sie jedoch einen Datensatz mit vielen Telefonnummern anzeigen, wird dieser 555 schnell ziemlich eintönig aussehen. Um die Sache interessanter zu gestalten, generieren wir andere Telefonnummern, die gegen die Regeln des nordamerikanischen Nummerierungsplans (NANP) verstoßen. Im Folgenden sind einige ungültige Beispielnummern aufgeführt, die jede durch dieses Skript generierte Nummernklasse darstellen:

    • (157) 836-8167
      Diese Nummer ist ungültig, weil Vorwahlen nicht mit 1 oder 0 beginnen können.
    • (298) 731-6185
      Diese Nummer ist ungültig, da das NANP keine Vorwahlen mit 9 als zweite Ziffer zuweist.
    • (678) 035-7598
      Diese Nummer ist ungültig, da Exchange-Codes nicht mit 1 oder 0 beginnen können.
    • (752) 811-1375
      Diese Nummer ist ungültig, da Exchange-Codes nicht mit zwei Einsen enden können.
    • (265) 555-0128
      Diese Nummer ist ungültig, da der Exchange-Code 555 ist, und Die Abonnenten-ID befindet sich innerhalb des Bereichs, der für fiktive Nummern reserviert ist.
    • (800) 555-0199
      Diese Nummer ist die einzige 800-Nummer mit einem 555-Exchange-Code, der für die Verwendung als fiktive Nummer reserviert ist.

    Beachten Sie, dass die obigen Regeln Änderungen unterliegen können und je nach Gerichtsstand variieren können. Sie sollten Ihre eigenen Nachforschungen durchführen, um die aktuellen Regeln zu überprüfen, die für das Gebietsschema gelten, für das Sie Telefonnummern generieren.

    Allgemeine Befehle

    Es gibt einige recht gebräuchliche Befehle, die in diesem Skript verwendet werden. Sie sollten daher eine grundlegende Vorstellung davon bekommen, was diese bedeuten, bevor wir mit dem Schreiben beginnen.

    • ForEach-Objekt nimmt ein Array oder eine Liste von Objekten und führt die angegebene Operation für jedes Objekt aus. In einem ForEach-Object-Skriptblock verweist die Variable $ _ auf das aktuell verarbeitete Element.
    • ansonsten Mit Anweisungen können Sie eine Operation nur ausführen, wenn bestimmte Bedingungen erfüllt sind. Geben Sie optional an, was getan werden soll, wenn diese Bedingung nicht erfüllt ist.
    • Schalter Anweisungen sind wie if-Anweisungen mit mehr Auswahlmöglichkeiten. Switch prüft ein Objekt auf verschiedene Bedingungen und führt alle Skript-Blöcke aus, für die das Objekt angegeben ist. Sie können optional auch einen Standardblock angeben, der nur ausgeführt wird, wenn keine anderen Bedingungen erfüllt sind. Switch-Anweisungen verwenden auch die Variable $ _, um auf das aktuell verarbeitete Element zu verweisen.
    • während Mit Anweisungen können Sie einen Skriptblock kontinuierlich wiederholen, solange eine bestimmte Bedingung erfüllt ist. Sobald etwas passiert, das dazu führt, dass die Bedingung nicht mehr erfüllt ist, wenn der Skriptblock beendet ist, wird die Schleife beendet.
    • versuche es… fangen Anweisungen helfen bei der Fehlerbehandlung. Wenn mit dem für try angegebenen Skriptblock etwas schief geht, wird der catch-Block ausgeführt.
    • Get-Content tut, was es auf der Dose sagt. Es erhält den Inhalt eines angegebenen Objekts - normalerweise einer Datei. Dies kann verwendet werden, um den Inhalt einer Textdatei an der Konsole anzuzeigen oder, wie in diesem Skript, den Inhalt entlang der Pipeline zu übergeben, damit er mit anderen Befehlen verwendet werden kann.
    • Write-Host legt Sachen in die Konsole. Dies wird verwendet, um dem Benutzer Nachrichten anzuzeigen, und ist nicht in der Skriptausgabe enthalten, wenn die Ausgabe umgeleitet wird.
    • Write-Output erzeugt tatsächlich eine Ausgabe. Normalerweise wird dies auf die Konsole übertragen, es kann jedoch auch von anderen Befehlen umgeleitet werden.

    Es gibt andere Befehle im Skript, aber wir werden diese im weiteren Verlauf erklären.

    Das Skript erstellen

    Jetzt ist es Zeit, uns die Hände schmutzig zu machen.

    Teil 1: Vorbereitungen

    Wenn Sie möchten, dass Ihr Skript von einer sauberen Konsole aus ausgeführt wird, ist hier die erste gewünschte Zeile.

    Clear-Host

    Nun, da wir einen sauberen Bildschirm haben, wollen wir als Nächstes das Skript überprüfen, um sicherzustellen, dass alles, was es braucht, vorhanden ist. Um dies zu tun, müssen wir ihm zunächst sagen, wo er suchen und was er suchen soll.

    $ ScriptFolder = Split-Path $ MyInvocation.MyCommand.Definition -Parent $ RequiredFiles = ('Males.txt', 'Females.txt', 'Nachnamen.txt')

    Die erste Zeile ist für jedes Skript sehr nützlich. Es definiert eine Variable, die auf den Ordner verweist, der das Skript enthält. Dies ist wichtig, wenn Ihr Skript andere Dateien benötigt, die sich im selben Verzeichnis wie sich selbst (oder einem bekannten relativen Pfad aus diesem Verzeichnis) befinden, da andernfalls Fehler auftreten, wenn Sie versuchen, das Skript in einem anderen Verzeichnis auszuführen Arbeitsverzeichnis.

    In der zweiten Zeile wird ein Array von Dateinamen erstellt, die für die ordnungsgemäße Ausführung des Skripts erforderlich sind. Wir werden dies zusammen mit der $ ScriptFolder-Variablen im nächsten Abschnitt verwenden, in dem wir prüfen, ob diese Dateien vorhanden sind.

    $ RequiredFiles | ForEach-Object if (! (Test-Pfad "$ ScriptFolder \ $ _")) Schreib-Host "$ _ nicht gefunden." -ForegroundColor Red $ MissingFiles ++

    Dieser Skriptblock sendet das $ RequiredFiles-Array in einen ForEach-Object-Block. In diesem Skriptblock verwendet die if -Anweisung Test-Path, um zu sehen, ob die gesuchte Datei dort ist, wo sie hingehört. Test-Path ist ein einfacher Befehl, der bei Angabe eines Dateipfads eine grundlegende wahre oder falsche Antwort zurückgibt, um anzugeben, ob der Pfad auf einen vorhandenen Pfad verweist. Das Ausrufezeichen dort ist a nicht Operator, der die Antwort von Test-Path storniert, bevor er an die if-Anweisung übergeben wird. Wenn Test-Path also false zurückgibt (dh die Datei, nach der wir suchen, ist nicht vorhanden), wird sie in true konvertiert, damit die if-Anweisung ihren Skriptblock ausführt.

    Eine weitere Bemerkung, die in diesem Skript häufig verwendet wird, ist die Verwendung von Anführungszeichen anstelle von Anführungszeichen. Wenn Sie etwas in einfache Anführungszeichen setzen, behandelt PowerShell es als statische Zeichenfolge. Was in den einfachen Anführungszeichen steht, wird genau so weitergegeben, wie es ist. In doppelten Anführungszeichen wird PowerShell angewiesen, die Variablen und einige andere spezielle Elemente in der Zeichenfolge zu übersetzen, bevor sie übergeben werden. Hier bedeuten die Anführungszeichen, anstatt zu laufen Testpfad '$ ScriptFolder \ $ _'  Wir werden tatsächlich etwas ähnlicher machen Testpfad 'C: \ Scripts \ Nachnamen.txt' (vorausgesetzt, Ihr Skript befindet sich in C: \ Scripts, und ForEach-Object arbeitet derzeit an 'Nachnamen.txt'.).

    Für jede Datei, die nicht gefunden wurde, gibt Write-Host eine Fehlermeldung in Rot aus, die Sie darüber informiert, welche Datei fehlt. Dann wird die $ MissingFiles-Variable, die im nächsten Abschnitt verwendet wird, inkrementiert, um Fehler anzuzeigen und zu beenden, wenn Dateien fehlen.

    if ($ MissingFiles) Write-Host "Quelldatei (en) für $ MissingFiles konnte nicht gefunden werden. Abbruch des Skripts." -ForegroundColor Red Remove-Variable ScriptFolder, RequiredFiles, MissingFiles-Exit

    Hier ist ein weiterer toller Trick, den Sie mit if-Anweisungen machen können. In den meisten Handbüchern werden Sie sehen, ob Anweisungen einen Operator verwenden, um nach einer übereinstimmenden Bedingung zu suchen. Zum Beispiel könnten wir hier verwenden if ($ MissingFiles -gt 0) um zu sehen, ob $ MissingFiles größer als Null ist. Wenn Sie jedoch bereits Befehle verwenden, die einen booleschen Wert zurückgeben (wie im vorherigen Block, in dem Test-Path verwendet wurde), ist dies nicht erforderlich. In solchen Fällen können Sie auch darauf verzichten, wenn Sie nur testen, ob eine Zahl ungleich Null ist. Jede Zahl ungleich Null (positiv oder negativ) wird als wahr behandelt, während null (oder, wie hier eine nicht vorhandene Variable auftreten kann) als falsch behandelt wird.

    Wenn $ MissingFiles vorhanden ist und nicht Null ist, wird von Write-Host eine Nachricht mit der Anzahl der fehlenden Dateien und dem Abbruch des Skripts angezeigt. Dann entfernt Remove-Variable alle von uns erstellten Variablen und Exit beendet das Skript. In der regulären PowerShell-Konsole wird Remove-Variable für diesen speziellen Zweck nicht wirklich benötigt, da von Skripts gesetzte Variablen normalerweise beim Beenden des Skripts verworfen werden. Die PowerShell-ISE verhält sich jedoch etwas anders. Daher sollten Sie dies beibehalten, wenn Sie das Skript von dort aus ausführen möchten.

    Wenn alles in Ordnung ist, wird das Skript fortgesetzt. Eine weitere Vorbereitung ist ein Pseudonym, über den wir uns später wirklich freuen werden.

    New-Alias ​​g Get-Random

    Aliase werden verwendet, um alternative Namen für Befehle zu erstellen. Diese können hilfreich sein, um uns mit der neuen Benutzeroberfläche vertraut zu machen (z. B .: PowerShell verfügt über integrierte Aliasnamen wie dir -> Get-ChildItem und cat -> Get-Content) oder Kurzreferenzen für häufig verwendete Befehle. Hier machen wir eine sehr Kurzreferenz für die Get-Random Befehl, der später viel verwendet wird.

    Get-Random macht so ziemlich das, was der Name vermuten lässt. Wenn ein Array (wie eine Liste von Namen) als Eingabe eingegeben wird, wird ein zufälliges Element aus dem Array ausgewählt und ausgespuckt. Es kann auch zur Erzeugung von Zufallszahlen verwendet werden. Bei Get-Random und Zahlen ist jedoch zu beachten, dass er wie viele andere Computervorgänge von Null an zu zählen beginnt. Also statt Get-Random 10 Das bedeutet, je natürlicher „gib mir eine Zahl von 1 bis 10“, bedeutet es wirklich „gib mir eine Zahl von 0 bis 9.“. Du kannst die Zahlenauswahl genauer festlegen, so dass sich Get-Random eher so verhält, als würdest du natürlich erwarten, aber das brauchen wir in diesem Skript nicht.

    Teil 2: Benutzereingaben abrufen und mit der Arbeit beginnen

    Während ein Skript, das nur einen zufälligen Namen und eine Telefonnummer generiert, großartig ist, ist es viel besser, wenn das Skript dem Benutzer ermöglicht, anzugeben, wie viele Namen und Nummern er in einem Stapel erhalten soll. Leider können wir nicht wirklich darauf vertrauen, dass Benutzer immer gültige Eingaben machen. Es gibt also ein bisschen mehr als nur $ UserInput = Read-Host.

    while (! $ ValidInput) try [int] $ UserInput = Read-Host -Prompt 'Zu generierende Elemente' $ ValidInput = $ true catch Write-Host 'Ungültige Eingabe. Geben Sie nur eine Zahl ein. ' -ForegroundColor Rot

    Die while-Anweisung oben prüft und negiert den Wert von $ ValidInput. Solange $ ValidInput false ist oder nicht existiert, wird der Skriptblock durchlaufen.

    Die try-Anweisung nimmt Benutzereingaben über Read-Host entgegen und versucht, sie in einen Ganzzahlwert umzuwandeln. (Das ist das [int] before Read-Host.) Wenn dies erfolgreich ist, wird $ ValidInput auf true gesetzt, damit die while-Schleife beendet werden kann. Wenn dies nicht erfolgreich ist, gibt der catch-Block einen Fehler aus. Da $ ValidInput nicht gesetzt wurde, wird die while-Schleife erneut angezeigt und der Benutzer wird erneut aufgefordert.

    Sobald der Benutzer eine Nummer als Eingabe eingegeben hat, möchten wir, dass das Skript die Arbeit beginnt und dann beginnen soll.

    Write-Host "'Generieren von $ UserInput-Namen und Telefonnummern. Bitte haben Sie etwas Geduld.'n" 1… $ UserInput | ForEach-Objekt 

    Machen Sie sich keine Sorgen, wir werden Sie nicht alleine lassen, um den Code des Generators für Zufallsnamen und -nummern herauszufinden. Dies ist nur ein Platzhalter-Kommentar, um zu zeigen, wo der nächste Abschnitt (wo die eigentliche Arbeit erledigt wird) passen wird.

    Die Write-Host-Linie ist ziemlich unkompliziert. Es gibt lediglich an, wie viele Namen und Telefonnummern das Skript generieren wird, und fordert den Benutzer auf, geduldig zu sein, während das Skript seine Arbeit erledigt. Das'n Am Anfang und am Ende des Strings wird vor und nach dieser Ausgabe eine Leerzeile eingefügt, um eine visuelle Trennung zwischen der Eingabezeile und der Liste der Namen und Nummern zu ermöglichen. Beachten Sie, dass dies ein hinterer Haken ist (AKA-Akzent - in der Regel der Schlüssel oberhalb der Registerkarte links von 1) und kein Apostroph oder ein einzelnes Anführungszeichen vor jedem n.

    Der nächste Teil zeigt eine andere Art und Weise, wie Sie eine ForEach-Object-Schleife verwenden können. Wenn Sie möchten, dass ein Skriptblock eine bestimmte Anzahl von Malen ausgeführt wird, richten Sie normalerweise eine reguläre for-Schleife ein für ($ x = 1; $ x -le $ UserInput; $ x ++) . Mit ForEach-Object können wir dies vereinfachen, indem wir ihm eine Liste von Ganzzahlen zuführen. Statt ihm zu sagen, dass er irgendetwas mit diesen Ganzzahlen machen soll, geben wir ihm einen statischen Skriptblock, der ausgeführt werden soll, bis ihm die Ganzzahlen fehlen.

    Teil 3: Einen zufälligen Namen generieren

    Die Generierung des Namens ist der einfachste Teil des restlichen Prozesses. Es besteht nur aus drei Schritten: Einen Nachnamen auswählen, ein Geschlecht auswählen und einen Vornamen auswählen. Erinnern Sie sich an das Alias, das wir vor einiger Zeit für Get-Random gemacht haben? Zeit zu beginnen, das zu verwenden, um zu verwenden.

        $ Nachnamen = Get-Content "$ ScriptFolder \ Nachnamen.txt" | g $ Male = g 2 if ($ Male) $ FirstName = Get-Content "$ ScriptFolder \ Males.txt" | g else $ FirstName = Get-Content "$ ScriptFolder \ Females.txt" | G

    In der ersten Zeile wird unsere Liste der Nachnamen aufgenommen, in die Zufallsauswahl eingegeben und der gewählte Name wird $ Nachnamen zugewiesen.

    Die zweite Zeile wählt das Geschlecht unserer Person. Erinnern Sie sich, wie Get-Random von Null an zählt und wie Null falsch ist und alles andere wahr ist? So benutzen wir Get-Random 2 (oder der viel kürzere g 2 Dank unseres Alias ​​- beide führen zu einer Wahl zwischen Null oder Eins), um zu entscheiden, ob unsere Person männlich ist oder nicht. Die if / else-Anweisung danach wählt zufällig einen männlichen oder weiblichen Vornamen aus.

    Teil 4: Erstellen einer zufälligen Telefonnummer

    Hier ist der wirklich lustige Teil. Vorhin haben wir Ihnen gezeigt, wie Sie auf verschiedene Weise eine ungültige oder fiktive Telefonnummer erstellen können. Da wir nicht möchten, dass sich alle unsere Zahlen zu ähnlich aussehen, wählen wir jedes Mal ein ungültiges Zahlenformat aus. Die zufällig ausgewählten Formate werden durch Vorwahl und Vorwahlcode definiert, die zusammen als $ Prefix gespeichert werden.

        $ NumberFormat = g 5 Schalter ($ NumberFormat) 0 $ $ Prefix = "($ (g 2) $ (g 10) $ (g 10)) $ (g 10) $ (g 10) $ (g 10)"  1 $ Prefix = "($ (g 10) 9 $ (g 10)) $ (g 10) $ (g 10) $ (g 10)" 2 $ Prefix = "($ (g 10) $ (g 10) $ (g 10)) $ (g 2) $ (g 10) $ (g 10) " 3 $ Prefix =" ($ (g 10) $ (g 10) $ (g 10)) $ (g 10) 11 " 4 $ Prefix =" ($ (g 10) $ (g 10) $ (g 10)) 555 "

    Die erste Zeile ist eine unkomplizierte Zufallszahlengenerierung, aus der Sie wählen können, welches Format wir für die Telefonnummer verwenden werden. Dann nimmt die switch-Anweisung diese zufällige Auswahl und generiert dementsprechend ein $ Prefix. Erinnern Sie sich an die Liste ungültiger Rufnummerntypen? Die $ NumberFormat-Werte 0-3 entsprechen den ersten vier in dieser Liste. Wert 4 kann einen der letzten beiden Werte generieren, da beide den Exchange-Code "555" verwenden.

    Hier können Sie auch sehen, dass wir einen anderen Trick mit Anführungszeichen verwenden. Anführungszeichen erlauben nicht nur das Interpretieren von Variablen, bevor ein String ausgegeben wird, sondern auch die Verarbeitung von Skriptblöcken. Dazu wickeln Sie den Skriptblock folgendermaßen ein: "$ ()". Was Sie oben haben, ist eine Menge individuell randomisierter Ziffern, von denen einige entweder in ihrem Bereich begrenzt sind oder statisch gemäß den Regeln festgelegt werden, die wir befolgen müssen. Jede Zeichenfolge enthält auch Klammern und Abstände, wie Sie dies normalerweise in einem Paar aus Vorwahl und Exchange-Code erwarten würden.

    Das letzte, was wir tun müssen, bevor wir unseren Namen und unsere Telefonnummer ausgeben können, ist das Generieren einer Abonnenten-ID, die als $ Suffix gespeichert wird.

        switch ($ NumberFormat) $ _ -lt 4 $ Suffix = "$ (g 10) $ (g 10) $ (g 10) $ (g 10)" 4 switch ($ Prefix) '( 800) 555 '$ Suffix =' 0199 ' Standardeinstellung $ Suffix = "01 $ (g 10) $ (g 10)"

    Aufgrund der speziellen Regeln für 555-Nummern können wir nicht einfach vier zufällige Ziffern für das Ende jeder Telefonnummer generieren, die unser Skript erstellt. Der erste Schalter prüft also, ob es sich um eine 555-Nummer handelt. Wenn nicht, werden vier zufällige Ziffern generiert. Wenn es sich um eine 555-Nummer handelt, sucht der zweite Switch nach der Vorwahl 800. Wenn das stimmt, gibt es nur ein gültiges $ Suffix, das wir verwenden können. Andernfalls kann zwischen 0100-0199 gewählt werden.

    Beachten Sie, dass es einige Möglichkeiten gibt, wie dieser Block geschrieben wurde, anstatt wie er ist. Beide switch-Anweisungen könnten durch if / else-Anweisungen ersetzt worden sein, da sie jeweils nur zwei Optionen verarbeiten. Anstatt "4" als Option für die erste switch-Anweisung speziell aufzurufen, könnte "default" ähnlich wie in der zweiten verwendet werden, da dies die einzige Option war. Die Wahl zwischen if / else vs. switch oder der Verwendung des Standardschlüsselworts anstelle bestimmter Werte hängt oft von persönlichen Vorlieben ab. Solange es funktioniert, verwenden Sie das, was Sie am besten können.

    Jetzt ist es Zeit für die Ausgabe.

        Schreibe-Ausgabe "$ FirstName $ Nachname $ Prefix- $ Suffix"

    Dies ist ziemlich einfach, wie es im Skript steht. Es werden nur der erste und der letzte Name durch Leerzeichen getrennt, dann ein weiteres Leerzeichen vor der Telefonnummer. Hier wird auch der Standardstrich zwischen Exchange-Code und Abonnenten-ID hinzugefügt.

    Diese schließende Klammer am unteren Ende ist das Ende der ForEach-Object-Schleife von früher - lassen Sie dies aus, wenn Sie sie bereits haben.

    Teil 5: Bereinigen und Ausführen des Skripts

    Nachdem alle Arbeiten erledigt sind, weiß ein gutes Skript, wie es nach dem Aufräumen aufgeräumt wird. Auch hier ist das Entfernen der Variablen nicht wirklich erforderlich, wenn Sie das Skript nur über die Konsole ausführen. Sie möchten es jedoch, wenn Sie es jemals in der ISE ausführen möchten.

    Remove-Item-Alias: \ g Remove-Variable ScriptFolder, RequiredFiles, Nachname, Männlich, Vorname, NumberFormat, Präfix, Suffix, ValidInput, UserInput

    Nachdem Sie alles erledigt haben, speichern Sie das Skript mit der Erweiterung „.ps1“ im selben Ordner wie Ihre Namensdateien. Stellen Sie sicher, dass Ihre ExecutionPolicy so eingestellt ist, dass das Skript ausgeführt werden kann, und machen Sie einen Wirbel.

    Hier ist ein Screenshot des Skripts in Aktion:

    Sie können auch eine ZIP-Datei mit diesem PowerShell-Skript sowie Textdateien mit Namenslisten über den folgenden Link herunterladen.

    Zufallsgenerator für Name und Telefonnummer für PowerShell