10Sep
Wenn Sie einen Datensatz zum Testen oder zur Demonstration benötigen und dieser Satz personenbezogene Daten darstellen muss, möchten Sie in der Regel keine echten Daten verwenden, die tatsächliche Personen darstellen. Hier erfahren Sie, wie Sie mithilfe von PowerShell eine Liste mit zufälligen Namen und Telefonnummern für eine solche Gelegenheit erstellen können.
Was Sie benötigen
Bevor Sie beginnen, gibt es einige Tools und Informationen, die Sie haben sollten:
PowerShell
Dieses Skript wurde mit PowerShell 4.0 entwickelt und wurde auch auf Kompatibilität mit PowerShell 2.0 getestet. PowerShell 2.0 oder höher ist seit Windows 7 in Windows integriert. Es 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 ausgeliefert. 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 kommt mit Windows 8.1.Benutzer von Windows 7 SP1 können im Rahmen eines WMF-Updates vom Microsoft Download Center auf diese Version aktualisieren. Es ist nicht für XP oder Vista verfügbar.
Namen
Sie benötigen einige Listen von Namen, die in den Zufallsgenerator eingegeben werden sollen. Eine große Quelle für ein -Los von Namen und Informationen über ihre Popularität( obwohl das für dieses Skript nicht verwendet wird), ist das United States Census Bureau. Die Listen, die unter den folgenden Links zur Verfügung stehen, sind sehr groß, daher sollten Sie sie etwas abschneiden, wenn Sie viele Namen und Nummern gleichzeitig erstellen möchten. In unserem Testsystem benötigte jedes Paar aus Name / Nummer etwa 1,5 Sekunden, um die vollständigen Listen zu erstellen, aber Ihre Meilenzahl hängt von Ihren eigenen Systemspezifikationen ab.
- -Namen
- Männliche Vornamen
- Weibliche Vornamen
Unabhängig von der Quelle, die Sie verwenden, 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 das PowerShell-Skript gespeichert werden.
Sequenties.txt sollte die Nachnamen enthalten, aus denen das Skript auswählen soll. Beispiel:
Smith Johnson Williams Jones BraunMales.txt sollte die männlichen Vornamen enthalten, aus denen das Skript auswählen soll. Beispiel:
James John Robert Michael WilliamWeibliche.txt sollte die weiblichen Vornamen enthalten, aus denen das Skript auswählen soll. Beispiel:
Mary Patricia Linda Barbara ElizabethRegeln für Telefonnummern
Wenn Sie sichergehen möchten, dass Ihre Telefonnummern nicht mit der echten Telefonnummer übereinstimmen, verwenden Sie am besten den bekannten "555" Exchange Code. Aber wenn Sie einen Datensatz mit vielen Telefonnummern zeigen, wird dieser 555 ziemlich schnell ziemlich monoton aussehen. Um die Dinge interessanter zu gestalten, generieren wir andere Telefonnummern, die gegen die Regeln des nordamerikanischen Nummerierungsplans( NANP) verstoßen. Im Folgenden sind einige ungültige Telefonnummern aufgeführt, die jede Klasse von Nummern darstellen, die von diesem Skript generiert werden:
- ( 157) 836-8167
Diese Nummer ist ungültig, da die Bereichscodes nicht mit einer 1 oder 0 beginnen können. - ( 298) 731-6185
Diese Nummer ist ungültig, da der NANP keine Vorwahl 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 1s enden können. - ( 265) 555-0128
Diese Nummer ist ungültig, da der Exchange-Code 555, und die Subscriber ID innerhalb des für fiktive Nummern reservierten Bereichs 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.
Bitte beachten Sie, dass sich die oben genannten Regeln ändern können und je nach Gerichtsbarkeit variieren können. Sie sollten Ihre eigenen Nachforschungen anstellen, um die aktuellen Regeln zu überprüfen, die für das Gebietsschema gelten, für das Sie Telefonnummern generieren.
Allgemeine Befehle
Es gibt einige ziemlich gebräuchliche Befehle, die in diesem Skript verwendet werden. Daher sollten Sie sich eine Vorstellung davon machen, was diese bedeuten, bevor wir damit beginnen, es tatsächlich zu schreiben.
- ForEach-Object verwendet ein Array oder eine Liste von Objekten und führt die angegebene Operation für jeden von ihnen aus. In einem ForEach-Object-Skriptblock wird die Variable $ _ verwendet, um auf das aktuelle Element zu verweisen, das gerade verarbeitet wird.
- if. .. else Mit -Anweisungen können Sie nur dann eine Operation ausführen, wenn bestimmte Bedingungen erfüllt sind, und( optional) angeben, was zu tun ist, wenn diese Bedingung nicht erfüllt ist.
- -Schalter -Anweisungen sind wie if-Anweisungen mit mehr Auswahlmöglichkeiten. Switch prüft ein Objekt anhand mehrerer Bedingungen und führt alle Skriptblöcke aus, die für Bedingungen angegeben sind, denen das Objekt entspricht. 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 aktuelle Element zu verweisen, das gerade verarbeitet wird.
- -Anweisungen ermöglichen es Ihnen, einen Skriptblock kontinuierlich zu wiederholen, solange eine bestimmte Bedingung erfüllt ist. Sobald etwas passiert, das bewirkt, dass die Bedingung nicht mehr erfüllt ist, wenn der Skriptblock beendet ist, wird die Schleife beendet.
- try. .. catch -Anweisungen helfen bei der Fehlerbehandlung. Wenn bei dem für try angegebenen Skriptblock irgendetwas schief geht, wird der catch-Block ausgeführt.
- Get-Content macht was es verspricht. Es ruft den Inhalt eines bestimmten Objekts ab - normalerweise eine 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, um mit anderen Befehlen verwendet zu werden.
- Write-Host bringt Sachen in die Konsole. Dies wird verwendet, um dem Benutzer Nachrichten zu präsentieren, und ist nicht in der Ausgabe des Skripts enthalten, wenn die Ausgabe umgeleitet wird.
- Write-Output erzeugt tatsächlich eine Ausgabe. Normalerweise wird dies an die Konsole ausgegeben, kann aber auch von anderen Befehlen umgeleitet werden.
Es gibt noch weitere Befehle im Skript, aber wir erklären diese im weiteren Verlauf.
Erstellen des Skripts
Jetzt ist es an der Zeit, uns die Hände schmutzig zu machen.
Teil 1: Vorbereitung
Wenn Sie möchten, dass Ihr Skript von einer sauberen Konsole gestartet wird, ist hier die erste Zeile, die Sie haben möchten.
Clear-HostJetzt, da wir einen sauberen Bildschirm haben, ist das nächste, was wir tun wollen, die Skriptprüfung zu haben, um sicherzustellen, dass alles, was benötigt wird, vorhanden ist. Um dies zu tun, müssen wir beginnen, indem wir ihm sagen, wo wir suchen müssen und worauf wir achten müssen.
$ ScriptFolder = Split-Pfad $ MyInvocation. MyCommand. Definition -Parent $ RequiredFiles =( 'Männlich.txt', 'Frauen.txt', 'Nachnamen.txt')Die erste Zeile dort ist sehr nützlich für jedes Skript. Es definiert eine Variable, die auf den Ordner mit dem Skript verweist. Dies ist wichtig, wenn Ihr Skript andere Dateien benötigt, die sich im selben Verzeichnis wie er selbst befinden( oder einen bekannten relativen Pfad von diesem Verzeichnis), da andernfalls Fehler auftreten, wenn Sie versuchen, das Skript auszuführen, während Sie sich in einem anderen befindenArbeitsverzeichnis
Die zweite Zeile erstellt ein Array von Dateinamen, die für die ordnungsgemäße Ausführung des Skripts erforderlich sind. Wir werden dies zusammen mit der Variable $ ScriptFolder im nächsten Teil verwenden, in dem wir prüfen, ob diese Dateien vorhanden sind.
$ Erforderliche Dateien |ForEach-Object{ if( !( Test-Path "$ ScriptFolder \ $ _")){ Write-Host "$ _ nicht gefunden."-ForegroundColor Red $ MissingFiles ++}}Dieser Skriptblock sendet das Array $ RequiredFiles in einen ForEach-Object-Block. Innerhalb dieses Skriptblocks verwendet die if-Anweisung Test-Path, um festzustellen, ob die gesuchte Datei dort liegt, wo sie hingehört. Test-Path ist ein einfacher Befehl, der bei Angabe eines Dateipfads eine grundlegende Wahr- oder Falsch-Antwort zurückgibt, um uns mitzuteilen, ob der Pfad auf etwas verweist, das existiert. Das Ausrufezeichen dort ist ein nicht -Operator, der die Antwort von Test-Path umkehrt, bevor es an die if-Anweisung weitergibt. Wenn Test-Path also false zurückgibt( dh die von uns gesuchte Datei nicht existiert), wird sie in true konvertiert, so dass die if-Anweisung ihren Skriptblock ausführt.
Eine andere Sache, die hier zu beachten ist, 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 einzelnen Anführungszeichen steht, wird genau so weitergegeben, wie es ist. Durch doppelte Anführungszeichen wird PowerShell angewiesen, die Variablen und einige andere spezielle Elemente innerhalb der Zeichenfolge zu übersetzen, bevor sie übergeben werden. Hier bedeuten die doppelten Anführungszeichen, dass statt Test-Path '$ ScriptFolder \ $ _' etwas mehr wie Test-Pfad 'C: \ Scripts \ Nachnamen.txt' ausgeführt wirdDas Skript befindet sich in C: \ Scripts und ForEach-Object arbeitet derzeit an '' '' '' Nachnamen.txt '').
Für jede Datei, die nicht gefunden wird, wird Write-Host eine Fehlermeldung in rot senden, um Ihnen mitzuteilen, welche Datei fehlt. Dann erhöht es die $ MissingFiles-Variable, die im nächsten Teil verwendet wird, auf Fehler und beendet, wenn irgendwelche Dateien fehlen.
if( $ MissingFiles){ Write-Host "Konnte $ MissingFiles-Quelldatei( en) nicht finden. Skript abbrechen."-ForegroundColor Red Remove-Variable ScriptFolder, RequiredFiles, MissingFiles Beenden}Hier ist ein weiterer netter Trick, den Sie mit if-Anweisungen machen können. Die meisten Anleitungen, die Sie sehen werden, wenn Anweisungen Ihnen sagen, dass Sie einen Operator verwenden müssen, um nach einer übereinstimmenden Bedingung zu suchen. Zum Beispiel könnten wir hier verwenden, wenn( $ 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. Sie können auch in solchen Fällen darauf verzichten, wenn Sie gerade testen, ob eine Zahl nicht Null ist. Jede Zahl ungleich Null( positiv oder negativ) wird als wahr behandelt, während Null( oder, wie es hier vorkommen kann, eine nicht vorhandene Variable) als falsch behandelt wird.
Wenn $ MissingFiles vorhanden ist und nicht Null ist, wird Write-Host eine Nachricht senden, die Ihnen mitteilt, wie viele Dateien fehlten und das Skript abgebrochen wird. Dann bereinigt Remove-Variable alle von uns erstellten Variablen und Exit beendet das Skript. In der normalen PowerShell-Konsole wird Remove-Variable für diesen speziellen Zweck nicht wirklich benötigt, da von Skripts festgelegte Variablen normalerweise beim Beenden des Skripts verworfen werden. Die PowerShell-ISE verhält sich jedoch etwas anders, weshalb Sie dies möglicherweise beibehalten möchten, wenn Sie das Skript von dort ausführen möchten.
Wenn alles in Ordnung ist, wird das Skript fortgesetzt. Eine weitere Vorbereitung ist ein Alias, über den wir uns später freuen werden.
New-Alias g Get-RandomAliase 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( zB: PowerShell hat eingebaute Aliasnamen wie dir -> Get-ChildItem und cat -> Get-Content ) oder um Kurzverweise zu erstellenfür häufig verwendete Befehle. Hier stellen wir eine --Kurzhandreferenz für den -Befehl Get-Random her, die viel später verwendet wird.
Get-Random macht ziemlich viel, was sein Name impliziert. Wenn ein Array( wie eine Liste von Namen) als Eingabe gegeben wird, wählt es ein zufälliges Element aus dem Array aus und spuckt es aus. Es kann auch verwendet werden, um Zufallszahlen zu generieren. Die Sache, an die man sich bei Get-Random und Zahlen erinnert, ist, dass sie wie viele andere Computeroperationen von Null an zu zählen beginnt. Also statt Get-Random 10 bedeutet die natürlichere "gib mir eine Nummer von 1 bis 10" bedeutet es wirklich "gib mir eine Zahl von 0 bis 9." Sie können genauer über die Nummer Auswahl, so dass Get- Das Verhalten verhält sich eher so, wie Sie es erwarten würden, aber das brauchen wir in diesem Skript nicht.
Teil 2: Benutzereingaben erhalten und zur Arbeit kommen
Während ein Skript, das nur einen zufälligen Namen erzeugt &Telefonnummer ist großartig, es ist viel besser, wenn das Skript dem Benutzer erlaubt anzugeben, wie viele Namen &Zahlen, die sie in einer Charge bekommen wollen. Leider können wir Benutzern nicht wirklich vertrauen, dass sie immer gültige Eingaben geben. 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 Nummer ein.-ForegroundColor Red}}Die obige while-Anweisung sucht nach dem Wert von $ ValidInput und negiert ihn. Solange $ ValidInput false ist oder nicht existiert, wird der Skriptblock weiter durchlaufen.
Die Anweisung try nimmt über Read-Host Benutzereingaben vor und versucht, sie in einen ganzzahligen Wert zu konvertieren.(Das ist das [int] vor dem Read-Host.) Wenn es erfolgreich ist, setzt es $ ValidInput auf true, damit die while-Schleife beendet werden kann. Wenn dies nicht erfolgreich ist, gibt der catch-Block einen Fehler aus, und da $ ValidInput nicht festgelegt wurde, wird die while-Schleife erneut angezeigt und der Benutzer erneut aufgefordert.
Sobald der Benutzer eine Nummer als Eingabe richtig eingegeben hat, möchten wir, dass das Skript ankündigt, dass es damit beginnt, tatsächlich seine Arbeit zu erledigen und dann darüber zu handeln.
Write-Host "` nGenerating $ UserInput Namen und Telefonnummern. Bitte haben Sie Geduld.n "1. . $ UserInput |ForEach-Object{ & lt; # INSERT RANDOM NAME &NUMMER GENERATOR HIER # & gt;}Mach dir keine Sorgen, wir werden dich nicht allein lassen, um den zufälligen Namen herauszufinden &Nummer Generator Code. Das ist nur ein Platzhalterkommentar, um Ihnen zu zeigen, wo der nächste Abschnitt( wo die eigentliche Arbeit erledigt wird) passt.
Die Write-Host-Zeile ist ziemlich einfach. Er gibt lediglich an, wie viele Namen und Telefonnummern das Skript generiert, und fordert den Benutzer auf, geduldig zu sein, während das Skript seine Arbeit verrichtet. Das `n am Anfang und am Ende des Strings dient dazu, vor und nach diesem Ausgang eine Leerzeile einzufügen, nur um eine visuelle Trennung zwischen der Eingangszeile und der Liste der Namen &Zahlen. Beachten Sie, dass dies ein Back-Tick( Aka "Akzent" - in der Regel der Schlüssel über Tab, links von 1) und kein Apostroph oder Single-Quote vor jedem n ist.
Der nächste Teil zeigt eine andere Möglichkeit, wie Sie eine ForEach-Object-Schleife verwenden können. Wenn ein Skriptblock eine bestimmte Anzahl von Malen ausgeführt werden soll, wird normalerweise eine reguläre for-Schleife wie für( $ x = 1; $ x -le $ UserInput; $ x ++){ & lt; # INSERT SCRIPT eingerichtetHIER # & gt;}. ForEach-Object lässt uns dies vereinfachen, indem wir ihm eine Liste von Ganzzahlen geben, und statt es mit diesen ganzen Zahlen zu tun, geben wir ihm einfach einen statischen Skriptblock, bis er keine Ganzzahlen mehr hat.
Teil 3: Erzeugen eines Zufallsnamens
Das Erzeugen des Namens ist das einfachste Bit des Rests dieses Prozesses. Es besteht nur aus drei Schritten: Einen Nachnamen auswählen, ein Geschlecht auswählen und einen Vornamen auswählen. Erinnerst du dich an den Alias, den wir für Get-Random erstellt haben? Zeit, damit anzufangen, das zu verwenden.
$ Nachname = Get-Content "$ ScriptFolder \ Nachnamen.txt" |g $ Männlich = g 2 if( $ Männlich){ $ FirstName = Get-Content "$ ScriptFolder \ Males.txt" |g} else{ $ Vorname = Get-Content "$ ScriptFolder \ Hema.txt" |g}Die erste Zeile führt unsere Liste der Nachnamen, füttert sie in den Zufallswähler und ordnet den ausgewählten Namen $ Nachname zu.
Die zweite Zeile wählt das Geschlecht unserer Person aus. Denken Sie daran, wie Get-Random beginnt, von Null an zu zählen, und wie Null ist falsch und alles andere ist wahr? So verwenden wir Get-Random 2 ( oder das viel kürzere g 2 dank unseres Alias - beides ergibt die Wahl zwischen Null oder Eins) um zu entscheiden, ob unsere Person männlich ist oder nicht. Die if / else-Anweisung wählt danach zufällig einen männlichen oder weiblichen Vornamen entsprechend aus.
Teil 4: Erstellen einer zufälligen Telefonnummer
Hier ist der wirklich lustige Teil. Zuvor haben wir Ihnen gezeigt, wie Sie auf verschiedene Arten eine ungültige oder fiktive Telefonnummer erstellen können. Da wir nicht wollen, dass all unsere Zahlen zu ähnlich aussehen, wählen wir jedes Mal ein ungültiges Zahlenformat aus. Die nach dem Zufallsprinzip gewählten Formate werden durch ihre Vorwahl und ihren Exchange-Code definiert, die zusammen als $ Präfix gespeichert werden.
$ NumberFormat = g 5 Schalter( $ NumberFormat){ 0{ $ Prefix = "($( g 2) $( g 10) $( g 10)) $( g 10) $( g 10) $( g 10)"} 1{ $ Präfix ="( $( g 10) 9 $( g 10)) $( g 10) $( g 10) $( g 10) "} 2{ $ Präfix ="( $( g 10)$( g 10) $( g 10)) $( g 2) $( g 10) $( g 10) "} 3{ $ Präfix ="( $( g 10) $( g 10) $( g 10)) $( g 10) 11 "} 4{ $ Präfix ="( $( g 10) $( g 10) $( g 10)) 555 "}}Die erste Zeile ist eine einfache Zufallsgenerierung, um das Format auszuwählenWir folgen der Telefonnummer. Dann nimmt die switch-Anweisung diese zufällige Auswahl und generiert entsprechend ein $ Präfix. Erinnern Sie sich an die Liste der ungültigen Telefonnummern? Die $ NumberFormat-Werte 0-3 entsprechen den ersten vier in dieser Liste. Wert 4 kann eines der letzten zwei erzeugen, da beide den "555" Exchange Code verwenden.
Hier sehen Sie auch, dass wir einen anderen Trick mit doppelten Anführungszeichen verwenden. Mit doppelten Anführungszeichen können Sie nicht nur Variablen interpretieren, bevor eine Zeichenfolge ausgegeben wird, sondern auch Skriptblöcke verarbeiten. Um dies zu tun, wickeln Sie den Skriptblock wie folgt um: "$( & lt; #SCRIPT HIER # & gt;)" .Also, was Sie oben haben, ist eine Menge von einzelnen randomisierten Ziffern, mit einigen von ihnen entweder in ihrer Reichweite begrenzt oder statisch festgelegt nach den Regeln, die wir folgen müssen. Jede Zeichenfolge enthält außerdem Klammern und Abstände, wie normalerweise in einem Code für die Orts- und Ortskennzahl zu erwarten wäre.
Das letzte, was wir tun müssen, bevor wir unseren Namen ausgeben können &Telefonnummer ist eine Subscriber ID, die als $ Suffix gespeichert wird.
Schalter( $ NumberFormat){ {$ _ -lt 4}{ $ Suffix = "$( g 10) $( g 10) $( g 10) $( g 10)"} 4{ schalter( $ Präfix){ '(800) 555 '{$ Suffix =' 0199 '} Standard{ $ Suffix = "01 $( g 10) $( g 10)"}}}}Wegen der speziellen Regeln für 555 Nummern können wir nicht einfachErstelle vier zufällige Ziffern für das Ende jeder Telefonnummer, die unser Skript schreiben wird. Also überprüft der erste Switch, ob es sich um eine 555-Nummer handelt. Wenn nicht, erzeugt es vier zufällige Ziffern. Wenn es eine 555-Nummer ist, sucht der zweite Schalter nach der 800-Vorwahl. Wenn das übereinstimmt, gibt es nur ein gültiges $ Suffix, das wir verwenden können. Ansonsten darf zwischen 0100-0199 gewählt werden.
Beachten Sie, dass es verschiedene Möglichkeiten gibt, wie dieser Block geschrieben werden könnte, anstatt wie er ist. Beide switch-Anweisungen könnten durch if / else-Anweisungen ersetzt werden, da sie jeweils nur zwei Auswahlmöglichkeiten erfüllen. Anstatt "4" als Option für die erste switch-Anweisung zu verwenden, könnte "default" auch ähnlich wie in der zweiten verwendet werden, da es die einzige verbleibende Option war. Die Wahl zwischen if / else vs. switch oder der Verwendung des Standardschlüsselworts anstelle von bestimmten Werten hängt häufig von persönlichen Vorlieben ab. Solange es funktioniert, verwenden Sie, was auch immer Sie am wohlsten sind.
Jetzt ist es Zeit für die Ausgabe.
Write-Output "$ Vorname $ Nachname $ Präfix- $ Suffix"}Dies ist so einfach wie es im Skript steht. Es gibt nur den ersten und letzten Namen getrennt durch Leerzeichen, dann ein anderes Leerzeichen vor der Telefonnummer aus. Hier wird auch der Standardstrich zwischen Exchange Code und Subscriber ID hinzugefügt.
Diese schließende Klammer unten ist das Ende der ForEach-Object-Schleife von früher - lassen Sie dies weg, wenn Sie es bereits haben.
Teil 5: Bereinigung und Ausführung des Skripts
Nachdem alle Arbeit erledigt ist, weiß ein gutes Skript, wie es sich selbst bereinigen soll. Auch hier ist das Entfernen der Variablen nicht unbedingt erforderlich, wenn Sie das Skript nur über die Konsole ausführen, aber Sie möchten es, 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, UserInputNachdem Sie alles erledigt haben, speichern Sie das Skript mit der Erweiterung ".ps1"im selben Ordner wie Ihre Namen Dateien. Stellen Sie sicher, dass Ihre ExecutionPolicy festgelegt ist, damit das Skript ausgeführt werden kann, und geben Sie einen Überblick.
Hier ist ein Screenshot des Skripts in Aktion:
Sie können auch eine ZIP-Datei mit diesem PowerShell-Skript und Textdateien mit Namenslisten über den folgenden Link herunterladen.
Zufälliger Name &Telefonnummer Generator für PowerShell