דף הבית » איך ל » כיצד ליצור שמות אקראיים & מספרי טלפון עם

    כיצד ליצור שמות אקראיים & מספרי טלפון עם

    כאשר אתה זקוק למערך נתונים לבדיקה או להדגמה, וערך זה צריך לייצג מידע המאפשר זיהוי אישי (PII), בדרך כלל אינך מעוניין להשתמש בנתונים אמיתיים המייצגים אנשים אמיתיים. הנה, נלמד אותך איך אתה יכול להשתמש PowerShell כדי ליצור רשימה של שמות אקראיים ומספרי טלפון רק עבור אירוע כזה.

    מה אתה צריך

    לפני שתתחיל, יש כמה כלים ומידע שאתה צריך:

    פגז כוח

    סקריפט זה פותח באמצעות PowerShell 4.0, וכן נבדק עבור תאימות עם PowerShell 2.0. PowerShell 2.0 ואילך כבר מובנית ל- Windows מאז Windows 7. הוא זמין גם עבור Windows XP ו- Vista כחלק מ- Windows Management Framework (WMF). להלן פרטים נוספים וקישורים להורדות.

    • PowerShell 2.0 מגיע עם Windows 7. Windows XP SP3 ו- Vista (SP1 ואילך) משתמשים יכולים להוריד את הגירסה המתאימה של WMF ממיקרוסופט ב- KB968929. זה לא נתמך על XP SP2 או למטה, או Vista ללא SP1.
    • PowerShell 4.0 מגיע עם Windows 8.1. משתמשי Windows 7 SP1 יכולים לשדרג אליו כחלק מעדכון WMF ממרכז ההורדות של Microsoft. זה לא זמין עבור XP או Vista.

    שמות

    אתה צריך כמה רשימות של שמות כדי להאכיל לתוך מחולל אקראי. מקור נהדר עבור גלה של שמות, ומידע לגבי הפופולריות שלהם (אם כי לא יהיה בשימוש עבור סקריפט זה), הוא מפקד ארצות הברית. את הרשימות הזמינות בקישורים להלן הם גדולים מאוד, אז אולי כדאי לקצץ אותם קצת אם אתה מתכנן להיות יצירת הרבה שמות ומספרים בבת אחת. על מערכת הבדיקה שלנו, כל שם / מספר זוג לקח בערך 1.5 שניות כדי ליצור באמצעות רשימות מלא אבל המילים שלך ישתנו בהתאם מפרט המערכת שלך.

    • שמות משפחה
    • זכר שמות פרטיים
    • נקבה שמות משפחה

    ללא קשר למקור אתה משתמש, תצטרך ליצור שלושה קבצי טקסט כי התסריט יכול להשתמש כמו בריכות לבחירת שם. כל קובץ צריך להכיל רק שמות, ורק שם אחד לכל שורה. אלה צריכים להיות מאוחסנים באותה תיקייה כמו סקריפט PowerShell שלך.

    Surnames.txt צריך להכיל את שמות המשפחה שאתה רוצה את הסקריפט לבחירה. דוגמא:

    סמית 'ג' ונס וויליאמס ג 'ונס בראון

    Males.txt צריך להכיל את השמות הפרטיים שאתה רוצה מהתסריט לבחירה. דוגמא:

    ג'יימס רוברט מייקל ויליאם

    Females.txt צריך להכיל את השמות הפרטיים הנשיים שאתה רוצה את התסריט לבחור מתוך. דוגמא:

    מרי פטרישיה לינדה ברברה אליזבת

    כללים למספרי טלפון

    אם אתה רוצה להיות בטוח מספרי הטלפון שלך אינם תואמים את מספר הטלפון האמיתי של מישהו, הדרך הקלה ביותר היא להשתמש ידוע "555" קוד Exchange. אבל אם אתה הולך להיות מציג נתונים להגדיר עם הרבה מספרי טלפון, כי 555 יתחילו להיראות די מונוטוני ממש מהר. כדי להפוך את הדברים למעניינים יותר, ניצור מספרי טלפון אחרים המפרים את הכללים של תוכנית המספור של צפון אמריקה (NANP). להלן כמה מספרי טלפון לא חוקיים לדוגמה, המייצגים כל מחלקה של מספר שיווצר על ידי סקריפט זה:

    • (157) 836-8167
      מספר זה אינו חוקי מפני שקודים אזוריים אינם יכולים להתחיל ב- 1 או 0.
    • (298) 731-6185
      מספר זה אינו חוקי משום שה - NANP אינו מקצה קודי אזור עם 9 כסוג השני.
    • (678) 035-7598
      מספר זה אינו חוקי מפני שקודי Exchange אינם יכולים להתחיל ב- 1 או 0.
    • (752) 811-1375
      מספר זה אינו חוקי מפני שקודי Exchange אינם יכולים להסתיים בשני שלבים.
    • (265) 555-0128
      מספר זה אינו חוקי מכיוון שקוד Exchange הוא 555, ו מזהה המנוי נמצא בטווח שמור למספרים פיקטיביים.
    • (800) 555-0199
      מספר זה הוא רק 800 מספר עם 555 קוד Exchange אשר שמורות לשימוש כמספר פיקטיבי.

    שים לב שהכללים הנ"ל כפופים לשינוי ועשויים להשתנות בהתאם לשיפוט. אתה צריך לעשות מחקר משלך כדי לאמת את הכללים הנוכחיים אשר חלים על המקום שבו אתה תהיה יצירת מספרי טלפון.

    פקודות נפוצות

    יש כמה פקודות שכיחות למדי, כי הם הולכים לשמש לאורך כל התסריט הזה, אז אתה צריך לקבל מושג בסיסי של מה הם מתכוונים לפני שאנחנו לצלול לתוך בעצם כותב את זה.

    • ForEach-Object לוקח מערך, או רשימה, של אובייקטים ומבצע את הפעולה שצוין על כל אחד מהם. בתוך גוש Script של אובייקט ForEach, המשתנה $ $ _ מתייחס להפניה של הפריט הנוכחי המעובד.
    • אחרת הצהרות מאפשרות לך לבצע פעולה רק אם מתקיימים תנאים מסוימים, ו (אופציונלי) לציין מה צריך לעשות כאשר תנאי זה אינו מתקיים.
    • החלף הצהרות הן כמו אם הצהרות עם יותר אפשרויות. המתג יבדוק אובייקט כנגד מספר תנאים, והפעל את כל קובצי הסקריפט שצוין עבור התנאים שהאובייקט תואם. כמו כן, באפשרותך לבחור בלוק ברירת מחדל שיפעל רק אם לא יתאימו תנאים אחרים. משפטי החלפה משתמשים גם במשתנה $ _ כדי להתייחס לפריט הנוכחי המעובד.
    • בזמן הצהרות מאפשרות לך לחזור שוב ושוב על בלוק סקריפט כל עוד מצב מסוים הוא פגש. ברגע שמשהו קורה שגורם למצב לא להיות נכון יותר כאשר בלוק סקריפט נגמר, הלולאה יוצאת.
    • נסה לתפוס הצהרות מסייעות בטיפול בשגיאות. אם משהו משתבש עם הבלוק סקריפט שצוין לנסות, בלוק לתפוס יפעל.
    • קבל תוכן עושה מה שהיא אומרת על הפח. הוא מקבל את התוכן של אובייקט מסוים - בדרך כלל קובץ. זה יכול לשמש כדי להציג את התוכן של קובץ טקסט במסוף או, כמו בסקריפט זה, להעביר את התוכן לאורך צינור לשמש עם פקודות אחרות.
    • לכתוב מארח מכניס דברים לקונסולה. פעולה זו משמשת להצגת הודעות למשתמש, ואינה כלולה בפלט של הסקריפט אם הפלט מקבל הפניה מחדש.
    • כתוב פלט למעשה מייצר פלט. בדרך כלל, זה מוזרק אל המסוף אבל זה יכול להיות גם מנותב על ידי פקודות אחרות.

    יש פקודות אחרות בסקריפט, אבל נסביר אותן כשאנחנו הולכים.

    בניית התסריט

    עכשיו הגיע הזמן לקבל את הידיים מלוכלכות.

    חלק 1: מתכונן ללכת

    אם אתה אוהב את הסקריפט שלך להתחיל לפעול מתוך מסוף נקי, הנה השורה הראשונה שאתה רוצה בו.

    נקה- Host

    עכשיו שיש לנו מסך נקי, הדבר הבא שאנחנו רוצים לעשות הוא לבדוק את התסריט כדי לוודא שכל מה שהוא צריך הוא במקום. כדי לעשות זאת, אנחנו צריכים להתחיל לספר את זה איפה לחפש, ומה לחפש.

    $ ScriptFolder = פיצול נתיב $ MyInvocation.MyCommand.Definition -Parent $ RequiredFiles = ('Males.txt', 'Females.txt', 'Surnames.txt')

    השורה הראשונה יש מאוד שימושי עבור כל סקריפט. הוא מגדיר משתנה המצביע על התיקייה המכילה את התסריט. זה חיוני אם הסקריפט שלך צריך קבצים אחרים הממוקמים באותה ספרייה עצמה (או נתיב יחסי ידוע מתוך ספריה זו), כי אחרת תיתקל שגיאות אם וכאשר תנסה להפעיל את התסריט בזמן שאתה נמצא אחר מדריך עבודה.

    השורה השנייה יוצרת מערך של שמות קבצים הדרושים כדי שהסקריפט יפעל כראוי. נשתמש בזה, יחד עם המשתנה ScriptFolder $ $, את הפריט הבא שבו אנו בודקים להיות בטוח קבצים אלה נמצאים.

    $ RequiredFiles | ForEach-Object אם (! (נתיב בדיקה $ ScriptFolder \ $ _ ")) כתוב מארח '$ _ לא נמצא.' -מגרש כדורעף אדום $ $ MissingFiles ++

    נתח סקריפט זה שולח את המערך RequiredFiles $ לתוך גוש ForEach-Object. בתוך בלוק Script זה, משפט ה- if משתמש ב- Test-Path כדי לראות אם הקובץ שאנו מחפשים הוא המקום שבו הוא שייך. Test-Path היא פקודה פשוטה, כאשר נתיב קובץ, מחזירה תגובה בסיסית או שקרית אמיתית כדי לספר לנו אם הנתיב מצביע על משהו שקיים. סימן הקריאה שם הוא לא המפעיל את התגובה של נתיב הבדיקה לפני העברתו להצהרה אם. לכן, אם Test-Path מחזירה false (כלומר, הקובץ אותו אנו מחפשים אינו קיים), הוא יומר ל- true כך שההצהרה if תפעיל את הבלוק סקריפט שלו.

    דבר נוסף לציין כאן, אשר ישמשו לעתים קרובות בתסריט זה, הוא השימוש ציטוטים כפולים במקום ציטוטים יחיד. כאשר אתה שם משהו במרכאות בודדות, PowerShell מתייחס אליו כחוט סטטי. מה הוא ציטוטים בודדים יועברו בדיוק כפי שהוא. ציטוטים כפולים מספרות ל- PowerShell לתרגום המשתנים ופריטים מיוחדים אחרים בתוך המחרוזת לפני העברתו. הנה, ציטוטים כפולים אומר כי במקום לרוץ נתיב בדיקה '$ ScriptFolder \ $ _'  אנחנו באמת נעשה משהו יותר Test-Path 'C: \ Scripts \ Surnames.txt' (בהנחה שהסקריפט שלך נמצא ב- C: \ Scripts, ו- ForEach-Object פועל כעת על 'Surnames.txt').

    עבור כל קובץ שלא נמצא, Write-Host יפרסם הודעת שגיאה באדום כדי לספר לך איזה קובץ חסר. לאחר מכן הוא מוסיף את המשתנה $ MissingFiles אשר ישמש את הפריט הבא, לשגיאה ולסגור אם היו קבצים חסרים.

    אם ($ MissingFiles) כתוב מארח 'לא הצליח למצוא $ $ MissingFiles קובץ המקור. -מגן אור אדום צבע-משתנה ScriptFolder, RequiredFiles, MissingFiles יציאה

    הנה עוד טריק טריק שאתה יכול לעשות עם הצהרות. רוב המדריכים תוכל לראות אם הצהרות יגידו לך להשתמש במפעיל כדי לבדוק את תנאי ההתאמה. לדוגמה, כאן נוכל להשתמש אם ($ MissingFiles -gt 0) כדי לראות אם $ MissingFiles גדול מאפס. עם זאת, אם אתה כבר משתמש בפקודות שמחזירות ערך בוליאני (כמו בבלוק הקודם שבו השתמשנו ב- Test-Path) זה לא הכרחי. אתה יכול גם לעשות את זה בלי מקרים כאלה, כאשר אתה רק בודק כדי לראות אם מספר הוא לא אפס. כל מספר שאינו אפס (חיובי או שלילי) מקבל טיפול נכון, בעוד אפס (או, כפי שעשוי לקרות כאן, משתנה לא קיים) יטופל כוזב.

    אם $ MissingFiles קיים, ואינו אפס, Write-Host יפרסם הודעה המציינת כמה קבצים חסרים ושהסקריפט יבטל. לאחר מכן, הסר-משתנה ינקה את כל המשתנים שיצרנו ויציאה תצא מהסקריפט. במסוף PowerShell הרגיל, הסר- Variable אינו נחוץ באמת עבור מטרה מסוימת זו, משום משתנים שנקבעו על ידי סקריפטים מושלכים בדרך כלל כאשר הסקריפט יוצא. עם זאת, PowerShell ISE מתנהג קצת אחרת אז אולי כדאי לך לשמור את זה אם אתה מתכנן להפעיל את התסריט משם.

    אם כל הדברים בסדר, הסקריפט ימשיך. הכנה נוספת לעשות הוא כינוי שאנחנו נשמח מאוד מאוחר יותר.

    כינוי חדש g-Random

    כינויים משמשים ליצירת שמות חלופיים עבור פקודות. אלה יכולים להיות שימושיים כדי לעזור לנו להכיר את הממשק החדש (למשל: PowerShell כולל כינויים מובנים כמו dir -> Get-ChildItem ו חתול -> Get-Content) או לבצע הפניות קצרות עבור פקודות נפוצות. הנה, אנחנו עושים מאוד התייחסות קצר עבור קבל אקראי הפקודה אשר הולך לשמש הרבה יותר מאוחר.

    קבל אקראי די הרבה עושה מה שמה מרמז. בהתחשב במערך (כמו רשימת שמות) כקלט, הוא בוחר פריט אקראי מהמערך ויורק אותו החוצה. זה יכול לשמש גם כדי ליצור מספרים אקראיים. הדבר שיש לזכור על Get-Random ומספרים הוא כי, כמו פעולות מחשב רבות אחרות, זה מתחיל לספור מאפס. אז במקום קבל אקראי 10 כלומר יותר טבעי "תן לי מספר 1-10" זה באמת אומר "תן לי מספר מ 0 עד 9." אתה יכול להיות ספציפי יותר לגבי הבחירה מספר, כך Get-Random מתנהג יותר כמו שאתה באופן טבעי לצפות, אבל אנחנו לא צריכים את זה בכתב זה.

    חלק 2: קבלת קלט משתמש ולהתחיל לעבוד

    בעוד סקריפט שמייצר רק שם אקראי אחד & מספר הטלפון הוא נהדר, זה הרבה יותר טוב אם התסריט מאפשר למשתמש לציין כמה שמות ומספרים הם רוצים לקבל אצווה אחת. למרבה הצער, אנחנו לא יכולים באמת לסמוך על המשתמשים תמיד לתת קלט חוקי. אז, יש קצת יותר מאשר זה פשוט $ UserInput = קריאה-מארח.

    ($ -Oid] $ UserInput = Read-Host -Prompt 'פריטים שיוצרו' $ ValidInput = $ true קלט Write-Host 'קלט לא חוקי. הזן מספר בלבד. ' -מגן אור אדום

    ההצהרה בזמן לעיל בודק, ו שולל, את הערך של $ ValidInput. כל עוד ValidInput $ $ הוא שקר, או לא קיים, זה ימשיך לולאה דרך הבלוק התסריט שלה.

    משפט הניסיון מקבל קלט משתמש, דרך Read-Host, ומנסה להמיר אותו לערך שלם. (זה ה [int] לפני קריאה- Host.) אם זה מצליח, זה יהיה להגדיר $ ValidInput כדי נכון, כך לולאה בזמן יכול לצאת. אם לא מצליח, בלוק לתפוס הודעות שגיאה, כי $ ValidInput לא לקבל מוגדר, הלולאה בזמן יחזרו מסביב ולהנחות את המשתמש שוב.

    ברגע שהמשתמש נתן מספר כהלכה כקלט, אנחנו רוצים שהסקריפט יודיע שהוא עומד להתחיל ממש בעבודתו ולאחר מכן לעשות את זה.

    כתוב מארח "" nGenerating $ UserInput שמות ומספרי טלפון ... אנא המתן בסבלנות "1" ... $ UserInput | ForEach-Object 

    אל תדאג, אנחנו לא הולכים לעזוב אותך בעצמך כדי להבין את שם אקראי & מספר קוד הגנרטור. זה רק הערה מיקום כדי להראות לך איפה את החלק הבא (שבו העבודה האמיתית נעשה) הולך להשתלב.

    כתיבת שורה מארח היא די פשוטה. זה פשוט אומר כמה שמות ומספרי טלפון התסריט הולך לייצר, ומבקש מהמשתמש להיות סבלני בזמן התסריט עושה את העבודה שלה. ה'n בתחילת וסוף של מחרוזת היא להוסיף שורה ריקה לפני ואחרי פלט זה, רק כדי לתת לו קצת הפרדה חזותית בין שורת קלט את רשימת שמות ומספרים. היו מודעים לכך שמדובר במבטא חמור של "AKA" - בדרך כלל הכרטיסייה העליונה שמאלה, ולא משמאל ל -1) ולא בגירסה אחת או בציטוט בודד לפני כל אחד מהם n.

    החלק הבא מציג דרך אחרת שבה ניתן להשתמש בלולאה ForEach-Object. בדרך כלל, כאשר אתה רוצה לחסום סקריפט להפעיל מספר מסוים של פעמים, תוכל להגדיר רגיל עבור לולאה כמו עבור ($ x = 1; $ x -le $ UserInput, $ x ++) . ForEach-Object מאפשר לנו לפשט את זה על ידי הזנת רשימה של מספרים שלמים, במקום להגיד את זה כדי לעשות משהו עם מספרים שלמים אלה, אנחנו פשוט נותנים לו בלוק סקריפט סטטי לרוץ עד שהוא נגמר של מספרים שלמים לעשות את זה עבור.

    חלק 3: יצירת שם אקראי

    יצירת השם היא החלק הפשוט ביותר של שאר התהליך. זה מורכב רק משלושה שלבים: בחירת שם משפחה, בחירת מין, בחירת שם פרטי. זכור את הכינוי שעשינו עבור Get-Random זמן מה? הגיע הזמן להתחיל לשים את זה כדי להשתמש.

        $ Surname = Get-Content "$ ScriptFolder \ Surnames.txt" | g $ זכר = g 2 אם ($ זכר) $ FirstName = Get-Content "$ ScriptFolder \ Males.txt" | g אחר $ FirstName = Get-Content "$ ScriptFolder \ Females.txt" | Register

    השורה הראשונה לוקחת את רשימת שמות המשפחה שלנו, מזינה אותו לתוך בורר אקראי, ומקצה את השם הנבחר $ $ Surname.

    השורה השנייה בוחרת את המין האנושי. זכור איך Get-Random מתחיל לספור מאפס, ואיך אפס הוא שקר וכל דבר אחר נכון? ככה אנחנו משתמשים Get-Random 2 (או הרבה יותר קצר ז 2 בזכות הכינוי שלנו - הן תוצאה של בחירה בין אפס או אחד) כדי להחליט אם האדם שלנו הוא זכר או לא. ההצהרה אם / אחר אחר כך בוחר באופן אקראי שם פרטי זכר או נקבה בהתאם.

    חלק 4: יצירת מספר טלפון אקראי

    הנה החלק ממש כיף. מוקדם יותר, הראינו לך איך יש כמה דרכים אתה יכול לעשות מספר טלפון לא חוקי או פיקטיבי. מכיוון שאנחנו לא רוצים שכל המספרים שלנו ייראו דומים מדי זה לזה, נבחר באופן אקראי פורמט מספר לא חוקי בכל פעם. הפורמטים שנבחרו באופן אקראי יוגדרו על ידי קוד האזור שלהם ו- Exchange קוד, אשר תאוחסן באופן קולקטיבי כקידומת $.

        $ $ (G 2) $ (g 10) $ g (10)) $ (g 10) $ (g 10) $ (g 10)  $ 1 ($ 10) $ (g 10) 9 $ (g 10)) $ 10 (g 10) $ (g 10) $ (g 10) " 2 $ Prefix =" ($ 10) $ $ (g 10) $ (g 2) $ (g 10) $ (g 10) " 3 $ Prefix =" ($ 10) $ (g 10) $ (g 10)) $ ($ 10) 11 " 4 $ Prefix =" ($ g (10) $ (g 10) $ (g 10)) 555 "

    השורה הראשונה היא פשוט מספר אקראי הדור לבחור איזה פורמט אנחנו הולכים לעקוב אחר מספר הטלפון. לאחר מכן, ההצהרה לעבור לוקח את זה בחירה אקראית ומייצר קידומת $ בהתאם. זכור את רשימת סוגי מספרי הטלפון הלא חוקיים? ערכי NumberFormat $ 0-3 תואמים את ארבעת הראשונים ברשימה זו. ערך 4 יכול ליצור אחד משני האחרונים, שכן שניהם משתמשים "555" קוד Exchange.

    כאן, תוכל גם לראות שאנו משתמשים בטריק אחר עם ציטוטים כפולים. ציטוטים כפולים לא רק מאפשרים לך לפרש משתנים לפני מחרוזת מקבל פלט - הם גם מאפשרים לך תהליך בלוקים סקריפט. כדי לעשות זאת, אתה עוטף את הבלוק סקריפט כך: "$ ()". אז מה שיש לך הוא הרבה ספרות אקראיות בנפרד, עם כמה מהם או מוגבלים בטווח שלהם או להגדיר באופן סטטי על פי הכללים שאנחנו צריכים לעקוב. לכל מחרוזת יש גם סוגריים ורווחים, כפי שציפית בדרך כלל בקוד אזור ו- Exchange Code.

    הדבר האחרון שאנחנו צריכים לעשות לפני שאנחנו מוכנים פלט השם שלנו & מספר הטלפון היא ליצור מזהה מנוי, אשר יאוחסנו כמו $ Suffix.

        ($ 10) $ $ (g 10) $ g $ 10 " 4 $ switch ($ prefix) ' 800 $ 555 '$ Suffix =' 0199 ' ברירת מחדל $ Suffix = "01 $ (g 10) $ (g 10)"

    בגלל הכללים המיוחדים עבור 555 מספרים, אנחנו לא יכולים פשוט ליצור ארבע ספרות אקראיות עבור סוף כל מספר טלפון התסריט שלנו הולך לעשות. אז, הבורר הראשון בודק אם אנחנו מתמודדים עם 555 מספר. אם לא, הוא מייצר ארבע ספרות אקראיות. אם זה מספר 555, הבורר השני בודק את 800 אזור החיוג. אם זה תואם, יש רק אחד Suffix תקף אנחנו יכולים להשתמש. אחרת, מותר לבחור מכל דבר בין 0100-0199.

    שים לב שיש כמה דרכים שונות זה בלוק יכול היה כתוב, במקום את הדרך בה הוא. שני הצהרות מתג יכול להיות מוחלף עם אם / אחר הצהרות, שכן הם כל לטפל רק שתי אפשרויות. כמו כן, במקום לקרוא במיוחד "4" כאפשרות עבור משפט המעבר הראשון, "ברירת המחדל" יכול היה לשמש דומה איך זה נעשה השני מאז זה היה האופציה היחידה שנותרה. הבחירה בין אם / אחר לעומת מתג, או היכן להשתמש במילת המפתח המוגדרת כברירת מחדל במקום ערכים ספציפיים, נוטה לעתים קרובות לעניין של העדפה אישית. כל עוד זה עובד, להשתמש בכל מה שאתה הכי נוח עם.

    עכשיו, הגיע הזמן פלט.

        כתיבת פלט "$ FirstName $ שם משפחה $ $ קידומת - $ סיומת"

    זה אחד די פשוט כמו שהוא מקבל את התסריט. זה פשוט פלטי שם פרטי ושם משפחה מופרדים על ידי רווחים, ואז עוד מקום לפני מספר הטלפון. זה המקום שבו מקף רגיל בין קוד Exchange ומנוי מזהה מתווספת גם כן.

    זה סוגר סוגר בתחתית הוא סוף של לולאה אובייקט ForEach מ קודם לכן - להשמיט את זה אם כבר יש לך את זה.

    חלק 5: ניקוי והפעלת התסריט

    אחרי כל העבודה נעשה, תסריט טוב יודע איך לנקות אחרי עצמו. שוב, המשתנה להסרת מתחת לא ממש נחוץ אם אתה רק הולך להפעיל את התסריט מהמסוף אבל אתה רוצה את זה אם אי פעם מתכננים להפעיל אותו ב- ISE.

    הסרת שם פריט: \ g הסר-משתנה ScriptFolder, RequiredFiles, שם משפחה, זכר, FirstName, NumberFormat, קידומת, סיומת, ValidInput, UserInput

    לאחר שתסיים את כל זה, שמור את התסריט עם סיומת ".ps1" באותה תיקייה כמו קבצי השמות שלך. ודא ExecutionPolicy שלך מוגדר כך סקריפט יכול לרוץ, ולתת לו מערבולת.

    הנה צילום מסך של הסקריפט בפעולה:

    ניתן גם להוריד קובץ ZIP המכיל סקריפט PowerShell זה, ואת קבצי טקסט עם רשימות שם, מתוך הקישור להלן.

    שם אקראי & מספר טלפון גנרטור עבור PowerShell