כיצד ליצור קבצים ותיקיות עם PowerShell

כשאתה צריך ליצור קבצים ותיקיות במחשב עם Windows, להשתמש בGUI נראה הדרך הכי אינטואיטיבית לעשות זאת. עם זאת, PowerShell יכול ליצור קבצים ותיקיות מרובים בקלות. זו משימה די נפוצה עבור כמעט כל מקצוען ה-IT, ובמדריך זה, נראה לך כיצד ליצור את הקבצים והתיקיות שלך באמצעות פקודת PowerShell New-Item.

כיצד ליצור קובץ ב-PowerShell

ברגע שאתה מבין איך להשתמש ב-PowerShell, המהירות בה אתה יכול ליצור דברים הופכת משימות משעממות להרבה יותר קלות. בואו נצלול פנימה ונבחן איך ליצור קבצים ותיקיות באמצעות New-item, Add-Content ו-Test-Path cmdlets.

פרסומת

כיצד ליצור קובץ עם הפקודה New-item

יצירת קובץ חדש ב-PowerShell יכולה להתבצע עם הNew-Item cmdlet. אם הייתי רוצה ליצור קובץ טקסט חדש בשם MyTextFile.txt, התחביר יהיה הבא:

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

בדוגמה לעיל, PowerShell יצר קובץ בתיקיית c:. אפשר, אף כן, לציין מיקום שונה על ידי הוספת הנתיב לשם הקובץ. הנה דוגמה:

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

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

הנה דוגמה כיצד להשתמש בלולאת ForEach פשוטה כדי ליצור 10 קבצים, כולם עם שם קובץ דומה.

פרסומת

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

אם נדרש, ניתן גם להשתמש בפקודת ה־Get-ChildItem כדי לרשום את כל הקבצים באותה התיקייה.

יצירת קובץ לאחר בדיקה שהוא עדיין לא קיים

ניתן גם להשתמש ב־PowerShell כדי לבדוק אם קבצים כבר קיימים לפני שננסה ליצור אותם. ישנם מספר דרכים לבדוק אם קבצים כבר קיימים באמצעות PowerShell, אך הדרך הפשוטה ביותר היא להשתמש בפקודת ה־Test-Path.

כפי שמשמע מהשם, ה־cmdlet Test-Path יכול לבדוק אם נתיב קיים. ניתן לבדוק עבור קבצים ו/או נתיבי תיקיות. ה־cmdlet מחזיר True אם הקובץ או התיקייה קיימים, ו־False אם אין.

בדוגמה המופיעה למטה, אני בודק אם הקובץ בשם MyTextFile.txt קיים. מאחר והקובץ קיים, ה־cmdlet Test-Path החזיר True:

פרסומת

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

כאשר אתה לומד את הלוגיקה לבדיקה אם קובץ קיים, ניתן להשתמש בפקודת Test-Path עם If statement כדי ליצור קובץ כאשר Test-Path מחזיר false. אראה לך כיצד לעשות זאת בדוגמה שלמטה:

  • כאן, אני משתמש במשתנה בשם $FileName לשם הקובץ כדי להפוך את הקוד שלי לנגיש יותר לקריאה וכדי למנוע הקלדה חוזרת.
  • בנוסף, הוספתי פקודת If כדי לבדוק קיום קובץ. בסוגריים העגולים נמצאת התנאי שיש לבדוק. בסוגריים הסולמיים נמצא הקוד שאני רוצה לבצע אם הבדיקה היא נכונה. שים לב שהאופרטור -not בשימוש בדוגמתי.
  • הקוד אומר שאם הקובץ בשם MyTextFile.txt לא קיים, אז יש ליצור את הקובץ. פקודת If מבצעת רק אם התנאי הוא נכון.
  • 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

נשוט ביחד דרך הפלט כדי שנדע בדיוק מה קרה: בדוגמה 1, הרצתי את הקוד שלי ולא קרה דבר; שים לב שאין פלט. זאת מכיוון שבתיקיית c: שלי, שם קובץ MyTextFile.txt כבר קיים. מאחר והוא קיים, הפקודת If לא ביצעה את הקוד.

בדוגמה 2, עם זאת, ניתן להבחין ששיניתי את הספרייה מהספרייה הזמנית לספריית הכלים. מכיוון שאין קובץ בשם MyTextFile.txt באחרון, כאשר אני מבצע את הקוד בפעם השנייה, הוראה if מבצעת את cmdlet New-Item ויוצרת קובץ חדש.

כיצד לכתוב נתונים לקובץ חדש או קיים

כבר בדקנו כיצד ליצור קבצים חדשים באמצעות PowerShell. עם זאת, אם תסתכל על התמונות מהמסך הקודמות, תשים לב שגודל הקובץ של כל הקבצים החדשים הוא 0 בתים. זה בגלל ש- cmdlet New-Item יוצר למעשה קבצים ריקים.

אם ברצונך להוסיף נתונים לקובץ קיים, באפשרותך להשתמש ב- cmdlet Add-Content. התחביר קל לתפיסה, בדיוק כמו הפקודה New-item. הנה דוגמה למטה:

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

לאחר מכן, אני יכול לבדוק את הקובץ שלי באמצעות cmdlet Get-Content.

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

כיצד לדרוס קובץ קיים

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

ניתן לראות בדוגמה שבהרצאה למטה את הודעת השגיאה שמציג PowerShell כאשר אנסה ליצור קובץ בשם MyNewFile3.txt.

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

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

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

כיצד ליצור תיקייה ב־PowerShell

כעת עברנו על השיטות השונות ליצירת קבצים ב־PowerShell. עכשיו, נראה כיצד ליצור תיקיות באמצעות הפקודות New-item ו־md.

יצירת תיקייה באמצעות הפקודה New-item

יצירת תיקיות ב־PowerShell היא גם משימה פשוטה בעזרת הפקודת New-Item זהה לזו שהשתמשנו בה קודם כדי ליצור קבצים. הכל שנדרש זה לציין את הפרמטר -ItemType.

הפרמטר -ItemType שולט בזה אם הפקודה New-Item תייצר קובץ, ספרייה (תיקייה), קישור סמלי, נקודת התחברות או קישור קשה. ניתן למצוא מידע נוסף על אפשרויות אלו בדף Microsoft Docs עבור New-Item.

יצירת תיקייה חדשה ב־PowerShell דומה ליצירת קובץ חדש. הנה דוגמה עם הפקודה שבתיאור:

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

צור תיקייה באמצעות פקודת md

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

אך, לכל מערכת ההפעלה יש פקודות משלה עם שמות שונים לביצוע אותם משימות. לדוגמה, כדי ליצור תיקייה חדשה בשם NewDirectory, לכל מערכת ההפעלה יש תחביר דומה עם שמות פקודות שונים: ב-DOS, התחביר הוא 'MD NewDirectory', אך ב-Linux, זה 'MKDIR NewDirectory'.

חברת מיקרוסופט לקחה שמות של הפקודות הפופולריות משפות תכנות אחרות וכללה אותם ב-PowerShell. פקודות כמו MKDIR או MD לא קיימות ב-PowerShell: במקום אלו, הן הן כינויים לאחיותיהן ב-PowerShell שעושות את אותו הדבר.

ב-PowerShell, MD הוא כינוי ל-MKDIR. בנוסף, MKDIR הוא כינוי ל-פקודת New-Item. כלומר, אם תקלידו MD, MKDIR, או New-Item ב-PowerShell, כל הפקודות הללו יש להן את ההשפעה הזהה: הפעלת פקודת New-Item.

הנה דוגמה מהירה להדגמת אותה פונקציונליות.

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

בדוגמאות לעיל, ניתן לראות שיצרתי שלושה קבצים בעזרת הכינויים ושמות הפקודות השונים ל-New-Item. הכינויים עובדים באופן זהה לקלידת New-Item.

מסקנה

PowerShell מאפשר דרכים רבות ליצירת קבצים ותיקיות. פקודת ה-New-Item עושה את זה לקל ולפשוט.

Microsoft כללה קיצוצים (aliases) המפנים לפקודות ממערכות ההפעלה הפופולריות כמו DOS ו-Linux ב-PowerShell כדי לעזור למנהלי מערכות להרגיש כמו בבית. ניתן גם להשתמש בלולאות כדי ליצור קבצים ותיקיות בהיקף גדול ובהצהרות לוגיקה כמו If כדי לוודא שמייצרים רק קבצים שעדיין לא קיימים.

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

PowerShell היא כלי מאוד רב-תכליתי, ועכשיו שיש לך את הידע על איך ליצור קבצים ותיקיות באמצעותו, תוכל לבדוק את מדריך הקודם שלנו על שימוש ב-PowerShell למחיקת קבצים ותיקיות.

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