עם האוטומציה, קריאת נתונים מקובץ טקסט היא תרחיש נפוץ. רוב שפות התכנות מציעות לפחות דרך אחת לקרוא קבצי טקסט, ו-PowerShell אינו חרוג. פקודת ה-cmdlet של PowerShell, Get-Content
, היא הדמות המקבילה של PowerShell לפקודת tail, הקוראת את תוכן הקובץ הטקסט ומייבאת את הנתונים לסשן של PowerShell.
פקודת ה-cmdlet Get-Content
של PowerShell היא כלי חיוני כאשר נדרש להשתמש בקבצי טקסט כקלט לתסריט שלך. אולי תסריט ה-PowerShell שלך צריך לקרוא רשימת מחשבים לצורך מעקב או לייבא תבנית דואר אלקטרוני לשליחה למשתמשים שלך. פקודת ה-PowerShell Get-Content
תומכת בקלות בתרחישים אלה!
מה אם תרצה לעקוב אחר קובץ יומן בזמן אמת? כן, פקודת ה-PowerShell Get-Content
יכולה לעשות את זה גם! תמשיך לקרוא את המאמר הזה, ותלמד כיצד להשתמש בפקודת Get-Content
כדי לקרוא קבצי טקסט ב-PowerShell.
דרישות קדם
אם אתה מעוניין לעקוב אחר הדוגמאות במדריך זה, תצטרך את הדרישות הבאות.
- תצטרך מחשב הפועל במערכת ההפעלה Windows 10. מדריך זה משתמש בגרסת Windows 10 גרסה 20H2. אך אל תדאג, תהיה לך בסדר גם עם הגרסה של Windows 10 שיש לך.
- עליך להחזיק לפחות בגרסת Windows PowerShell 5.1, או PowerShell 7.1 מותקנת על המחשב שלך. כאן משתמשים בגרסת PowerShell 7.1, אך גרסה כלשהי תעבוד!
- תהיה כותב ובודק פקודות, כך שתצטרך עורך קוד. העורכים המומלצים הם Windows PowerShell ISE, מובנה ב-Windows, ו-Visual Studio Code (VSCode). מאמר זה משתמש ב-VSCode.
- זה גם יעזור אם תיצור ספריית עבודה על מחשבך. התיקייה העבודה יכולה להיות בכל מקום שתרצה. עם זאת, תשים לב שהדוגמאות במדריך זה נמצאות בתיקייה C:\demo.
- כדי להתחיל, אתה צריך כמה תוכן! צור קובץ, בתיקיית העבודה שלך, בשם fruits.txt שכולל עשר פירות שונים לפשטות. אתה תשתמש בקובץ טקסט זה בכל הדוגמאות.
לא יודע איזו גרסת PowerShell יש לך? בקר במאמר איך לבדוק את גרסת ה-PowerShell שלך (כל הדרכים!).
קריאת קובץ טקסט והחזרת התוצאה כמערך מחרוזות
הפקודה Get-Content
קוראת תוכן מקובץ, וכברירת מחדל, מחזירה כל שורה מקובץ טקסט כאובייקט מחרוזת. כתוצאה מכך, אוסף האובייקטים של PowerShell הופך למערך של אובייקטי מחרוזת.
הקוד למטה קורא את תוכן הקובץ fruits.txt ומציג את התוצאה בקונסולת PowerShell כפי שנראה בצילום המסך למטה.

Get-Content
.Get-Content
קורא ושומר את התוכן כמערך, אבל איך אתה יודע את זה בוודאות? תחילה, שמור את התוכן לאובייקט של PowerShell שאותו אתה יכול לבחון כדי לקבוע את הסוג.
מבט על צילום המסך למטה, המשתנה $fruits
הוא מערך שמכיל עשרה אובייקטים. כל אובייקט מייצג שורת טקסט אחת.

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

כדי להציג רק את השורה החמישית של התוכן, יהיה עליך לציין את מספר האינדקס 4
, שמוקף בסוגריים מרובעים (ידוע גם כתחביר של מערך).
אתה עשוי לשים לב שפקודת
Get-Content
מוקפת בסוגריים. התחביר הזה אומר ל-PowerShell להריץ את הפקודה המוקפת בסוגריים תחילה לפני פעולות אחרות.
בצילום המסך למטה, תראה שהתוצאה היחידית שהוחזרה היא raspberry
, שהיא הפריט באינדקס 4
ומתאימה לשורה החמישית בקובץ הטקסט.

Get-Content
results.מה אם אתה צריך לקבל את התוכן בשורה האחרונה? למרבה המזל, אין צורך לדעת את מספר השורות הכולל. במקום זאת, השתמש ב-[-1]
כאינדקס, ו־Get-Content
תציג רק את השורה האחרונה של הקובץ.
הגבלת מספר התוצאות העליונות שמוחזרות על ידי Get-Content
השתמש בפרמטר TotalCount
של Get-Content
כדי לאחזר מספר מסוים של שורות מקובץ טקסט. הפרמטר TotalCount
מקבל ערך long המשמעווה ערך מקסימלי של 9,223,372,036,854,775,807.
לדוגמה, הפקודה למטה קוראת את התוכן ומגבילה את התוצאה לשלושה פריטים.
כפי שתצפה, התוצאה למטה מציגה רק את שלושת השורות הראשונות מהתחלת קובץ הטקסט.

Get-Content
command and the TotalCount
parameter.השתמש בפרמטר Tail של PowerShell כדי להחזיר תוצאות מסוף קובץ
בדוגמה הקודמת, השתמשת ב-cmdlet של PowerShell Get-Content
כדי לקרוא קובץ טקסט ולהגביל את התוצאות העליונות. גם ניתן להשיג את הניצול ההפוך באמצעות PowerShell Get-Content
. השתמש בפרמטר Tail של PowerShell כדי לקרוא מספר מסוים של שורות מסוף הקובץ.
קוד הדוגמה למטה קורא את קובץ הטקסט ומציג את תוכן השורות התחתונות הארבע.
לאחר הרצת פקודת ה-Tail של PowerShell, התוצאה הצפויה תישאר מוגבלת לארבעת השורות האחרונות של התוכן, כפי שמוצג בתמונה למטה.

Get-Content
Tail
parameter.הפרמטר Tail נהוג להשתמש בו יחד עם הפרמטר Wait. השימוש בפרמטר Wait משמר את הקובץ פתוח ובודק לתוכן חדש כל שנייה. הדגמה למטה מראה את הפרמטרים Tail ו- Wait בפעולה. כדי לצאת מהפקודה Wait, השתמש בשילוב מקשי ה-CTRL+C.

wait
and Tail
parameters with Get-Content
.החזרת התוצאות כמחרוזת יחידה
כבר שמת לב שבדוגמאות הקודמות שטיפלת במערכי מחרוזות כפלייה כפלייה כפלייה בפוושרל. וכפי שלמדת עד כה, טבע המערכים מאפשר לך לפעול על תוכן אחד בכל פעם.
מערכים עובדים נהדר, אך יכולים להקשות על החלפת מחרוזות. הפרמטר Raw
של Get-Content
קורא את כל תוכן הקובץ לתוך אובייקט מחרוזת יחיד.
התמונה למטה מדגימה כי הוספת הפרמטר Raw
ל־Get-Content
גורמת לטיפול בתוכן כמחרוזת יחידה ולא כמערך של אובייקטים.

Raw
parameter of Get-Content
reads the file content as a single string object.כאשר יש לך את תוכן הקובץ במחרוזת יחידה באמצעות הפרמטר Raw
, מה ניתן לעשות איתו? אולי עליך למצוא ולהחליף מחרוזת בתוך תוכן הקובץ הזה. בדוגמה למטה, Get-Content
קורא את תוכן הקובץ כמחרוזת יחידה. לאחר מכן, באמצעות אופרטור ה־replace
, מחליף מילה ספציפית באחרת.
קשור: מציאת והחלפת מחרוזות

replace
operator.קרא תוכן רק מקבצים שעברו את הסינון
האם יש לך תיקייה מלאה בקבצים אך צריך לקרוא את תוכן הקבצים הנבחרים בלבד? בעזרת PowerShell Get-Content
, אין צורך לסנן את הקבצים בנפרד לפני קריאת תוכנם. הפרמטר Filter
של Get-Content
מגביל אילו קבצים הפקודה תקרא.
כדי להדגים את קריאת התוכן של קבצים נבחרים בלבד, תחילה, יש ליצור כמה קבצים לקרוא. כפי שמוצג למטה, יש ליצור את הקבצים בתיקיית העבודה שלך באמצעות Add-Content
.

.log
files using Add-Content
.כאשר קבצי הבדיקה נוצרו, ניתן להשתמש בפרמטרים Filter
ו־Path
כדי לקרוא רק קבצי .log
בתיקיית השורש. הכוכבית שמצויה בהגדרת הסינון מציינת ל־Get-Content
לקרוא כל קובץ שמסתיים ב־.log
. הכוכבית הסופית של הפרמטר נתיב מגבילה את קריאת הקבצים לתיקיית השורש בלבד.
כפי שמוצג בפלט המצורף למטה, רק תוכן מקבצי ה־.log
מוצג.

Filter
parameter with PowerShell Get-Content
to limit the read files.נושאים קשורים: Get-ChildItem: רשימת קבצים, רישום, אישורים ועוד כאחד
קריאת הזרם הנתון של קובץ
עד כה, עבדת כולך עם קבצי טקסט באופן בלעדי, אך Get-Content
יכול לקרוא נתונים מהזרם הנתון החלופי (ADS) של קובץ. נפנה לך ל-קרוא עוד על זרמים, אך ניתן לחשוב על זרם כעל מאפיין נתונים נוסף המאוחסן לצד תוכן הקובץ הרגיל.
זרמי נתונים חלופיים הם תכונה של מערכת הקבצים NTFS של Windows, ולכן זה לא יחול על
Get-Content
כאשר הוא בשימוש עם מערכות הפעלה שונות מ-Windows.
ניתן לראות זרמי נתונים חלופיים על ידי הרצת Get-Item
עם הפרמטר Stream
. כאשר אתה מתייחס לקובץ באמצעות הפרמטר Stream
, Get-Item
מחזיר יכולת בשם Stream
, כפי שמוצג למטה. זרם תוכן ברירת המחדל של הקובץ נייצג על ידי :$DATA
.
כדי להדגיש את הזרם :$DATA
ברירת המחדל, השתמש ב־Get-Item
כדי להציג את כל הזרמים הזמינים בקובץ fruits.txt. כפי שמוצג למטה, Get-Item
מציג זרם יחיד.

Get-Item
.פרמטר ה־Stream
של Get-Content
קורא באופן מפורש את תוכן הזרם :$DATA
כפי שמוצג למטה. התוכן שיחזור הוא זהה לפלט שמספק Get-Content
ברירת המחדל מאחר והזרם :$DATA
נקרא באופן ברירת המחדל.

:$DATA
stream using Get-Content
.כדי להדגים איך לאחזר זרם נתונים אלטרנטיבי באמצעות Get-Content
, יש לשנות את הקובץ באמצעות Add-Content
כדי להוסיף את הזרם החדש. יש להשתמש ב-Get-Item
כדי להציג את הזרם החדש לצד הזרם הברירת מחדלי :$DATA
, כפי שמוצג בדוגמה למטה.

מאחר ורק הזרם :$DATA
נקרא כברירת מחדל, יש להשתמש בפרמטר Stream
של Get-Content
כדי לאחזר את תוכן הזרם החדש Secret
. כפי שמוצג למטה, תוכן הזרם Secret
מוצג במקום תוכן הקובץ ברירת המחדל.

Get-Content
to read the Secret
alternate data stream content.שלבים הבאים עם PowerShell Get-Content
במאמר זה, למדתם כמה דרכים להשתמש ב-Get-Content
כדי לקרוא ולנהל תוכן. אפילו למדתם ש-Get-Content
גמיש מספיק כדי לקרוא תוכן מזרמי נתונים אלטרנטיביים!
עם מה שלמדתם במאמר זה, אילו דרכים נוספות אפשר להשתמש ב-Get-Content
בעבודה שלך? אולי תוכלו להשתמש ב-Get-Content
כדי לקבוע האם קובץ גיבוי אפשרי ישן ולהפעיל קריאה אוטומטית להפעלת משימת גיבוי?
Source:
https://adamtheautomator.com/powershell-get-content/