Set-Content הוא אחד מפקודות ה- PowerShell הקריטיות שאני לא יכול לעבוד בלעדיה. אני עדיין זוכר שהשתמשתי ב- VBscript לפני שיצא לי להשתמש ב- PowerShell כדי לכתוב לקובץ. אני תמיד זוכר שניסיתי לזכור איזה אובייקט הייתי צריך להשתמש ואת שם השיטה. האם זה היה FileSystemObject, FileObject או מה? זה היה כאב ראש! אפילו כשזכרתי ששם השיטה היה CreateTextFile()
, תמיד שכחתי להוסיף את True
כארגומנט שני.
הנה דוגמה לאיומה שאני מדבר עליה.
השווה את VBScript הזו עם PowerShell הזו:
Set-Content -Path 'C:\file.txt' -Value 'test string'
איזה אתה מעדיף? אני אקח את הדרך של PowerShell! הדרך של PowerShell משתמשת בפקודת אחת בלבד בשם Set-content. פקודה זו מאפשרת לנו להשתמש בצורה הרבה יותר פשוטה ב- PowerShell כדי לכתוב לקובץ. פקודת PowerShell זו היא פקודה מובנית שיש לה מטרה אחת; לכתוב לקובץ.
יש לה כמה פרמטרים פה ושם שיכולים לשנות את ההתנהגות קצת, אך היא מתמקדת באופן בלעדי בכתיבה לקובץ. אל תתבלבל עם Add-Content
הכלולה, מאחר והן דומות. Set-Content
דורסת את כל הקובץ כש Add-Content
מוסיפה לקובץ. למדתי את זה בדרך הקשה מספר רב של פעמים כשהתחלתי!
יצירת קובץ/דרסו של קובץ
פקודת Set-Content
פשוטה יחסית. למטה דוגמה טובה. דוגמה זו מראה ש- Set-Content
יכולה ליצור קובץ אם אינו קיים או להחליף את כל התוכן בתוך קובץ קיים.
פלט לקובץ
הפקודה אחת שיכולה להוציא לקובץ היא Out-File
, אך Set-Content
יכולה לבצע אותה המשימה עם קצת שינויים קלים.
אולי תרצה למשל לשלוף חלקים ספציפיים של טקסט מקובץ טקסט אחד ולהוציא שורות לקובץ אחר. על ידי שימוש ב־Get-Content
ו־Set-Content, אפשר לעשות זאת. אולי יש לי קובץ טקסט עם שרת אחד והסטטוס שלהם לכל שורה. אשמח לקרוא את הסטטוס של כל שרת ולהוציא אותו לקובץ. באמצעות Get-Content
לקרוא את הקובץ ו־Set-Content
לכתוב לקובץ, זה אפשרי.
Set-Content
היא אחת מהפקודות המרכזיות האלו שמשמשות באופן קבוע. זה לא מפואר אבל עובד בכל פעם והוא אחת שצריך לך בתיק הכלים שלך ב־PowerShell.
לפירוט מלא, ראה את תיעוד ה־Set-Content של Microsoft.
Source:
https://adamtheautomator.com/powershell-write-to-file/