דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. מדריך | אוטומציות PowerShell בקבצי ps1 המדריך המלא

מדריך | אוטומציות PowerShell בקבצי ps1 המדריך המלא

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
4 פוסטים 3 כותבים 51 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • H מנותק
    H מנותק
    hartkhartk
    כתב נערך לאחרונה על ידי hartkhartk
    #1

    אוטומציות PowerShell בקבצי ps1 המדריך המלא חלק א

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

    אז דבר ראשון מה זה בכלל PowerShell ומה ההבדל בינו לבין cmd?

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

    מה שאני כן רוצה לדבר על זה זה המגביל המתקדם של cmd-bat שזה
    PowerShell-ps1

    למעשה PowerShell הוא הדור החדש של cmd

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

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    

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

    לבדיקה אם זה כבר מאושר למשתמש הרצת סקריפטים תריצו

    Get-ExecutionPolicy
    

    אם התוצאה זה Restricted אז זה חסום וצריך להריץ שוב את הפתיחה

    תצרו קובץ בסיומת ps1 ותפתחו אותו עם כל עורך טקסט

    כעת אפשר להכניס לקובץ פקודות

    שימו לב שכל פקודה ופקודה לבד יכולים להריץ ישירות בטרנימל אבל לרשימת פקודות ולבדיקות (if else) וללולאות ועוד צריך קובץ סקריפט בסיומת ps1

    שימו לב שבשביל שזה יעבוד תקין אסור להיות בנתיבים תווים בעברית

    פתחתי קובץ איך אני מתחיל?

    1 הדפסה לקונסול

    נתחיל בפקודה הראשונה הדפסת טקסט לקונסול

    Write-Output "הטקסט שלך"
    

    2 ניווט

    ועכשיו לניווט במיקום בקבצים בחלון PowerShell
    פותחים את הפקודה בתווים cd ממשיכים עם גרשיים שבתוכם הנתיב
    הנתיבים (בלי cd) ישמשו אותנו בקובץ ps1
    שימו לב לפונקציונליות
    יש שני סוגי נתיבים
    למשל: נניח שזה הנתיב לקובץ

    C:\Temp\power\a.ps1
    

    ואתם נמצאים ב PowerShell בנתיב

    c:\Temp
    

    תוכלו להריץ בשני דרכים
    1 נתיב יחסי

    ".\power\a.ps1"
    

    רק אם אתם במיקום הנכון

    2 נתיב מלא

    c:\Temp\power\a.ps1
    

    ללא תלות במיקום
    נתיב יחסי תמיד מתחיל ב

    .\
    

    ולמה? המשמעות של . זה תיקייה נוכחית ו \ זה מפריד לחלק הבא

    נתיב מלא תמיד מתחיל באות האנגלית של שם הכונן ונקודתיים : וסלאש ** למשל

    c:\
    

    המשמעות של . (נקודה) זה התיקיה הנוכחית
    המשמעות של .. (שני נקודות) זה ניווט אחד אחורה אל תיקייה אחורית
    המשמעות של ** זה מפריד בין החלקים ומכניס אל תיקייה\קובץ פנימי

    תאתגרו את עצמכם

    הפקודה הבאה

    c:\Temp\potosh\..\..\intel\.\.\..
    

    היכן זה יגמר?

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

    3 מבנה הפקודות

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

    שימו לב שיש שלושה סוגח פרמטרים. פרמטרים מיקומיים, פרמטרים לא-מיקומיים, ופרמטרי דגל

    1 פרמטרים מיקומיים ניתן לכתוב גם בלי שם הפרמטר כל עוד שומרים על הסדר של הפרמטרים בפקודה

    2 פרמטרים לא-מיקומיים אותו דבר אבל חיבים לכתוב גם את שם הפרמטר

    3 פרמטרי דגל שהם ללא תוכן בכלל רק כמו כפתור קימים ההגדרה דלוקה לא קימים ההגדרה כבויה

    4 העתקה ויצירה של קבצים ותיקיות

    תעקבו אחר המבנה שבחלק 3

    1 יצירה של משהו זה הפקודה New-Item
    סוג המשהו זה הפרמטר -ItemType שימו לב שזה ללא גרשיים, דוגמאות: תיקייה Directory, קובץ File
    ומיקום המשהו זה הפרמטר -path שימו לב שזה צריך להיות כולל שם המשהו בסוף הנתיב ואם זה קובץ אז כולל נקודה וסיומת
    לדוגמה

    New-Item -ItemType File -Path "C:\Temp\test.txt"
    

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

    New-Item "C:\Temp\test.txt" -ItemType File
    

    כי -path זה פרמטר מיקומי בעוד -ItemType זה פרמטר לא מיקומי

    שימו לב שאם הקובץ קיים זה יתן שגיאה אם אתם רוצים שזה יחליף את הקיים תוסיפו דגל -Force

    2 העתקה של משהו זה הפקודה Copy-Item
    וזה מקבל פרמטר מיקומי שמכיל את הנתיב מוצא שממנו מעתקים כולל שם התיקיה\קובץ.סיומת שאותו מעתיקים ועוד פרמטר נתיב יעד שלשם מעתיקים
    שימו לב שאם זה תיקייה לא ריקה צריך להוסיף דגל -Recurse בשביל שזה יקבל גישה לכל התוכן שבתוכו
    ושוב פעם אם זה קיים זה יתן שגיאה אם אתם רוצים שזה יחליף תוסיפו דגל -Force

    3 למחיקה של משהו זה הפקודה Remove-Item
    שמקבל פרמטר מיקומי נתיב הדבר שרוצים למחוק (ושוב אם זה קובץ אז כולל שם.סיומת)
    שימו לב שאם אתם מוחקים תיקייה אם יש לזה תוכן תצתרכו להוסיף -Recurse

    שימו לב שאם אתם רוצים שזה ימחק גם קבצים מוסתרים\קריאה בלבד תוסיפו את הדגל -Force

    להרצת הקובץ לאחר כתיבת הפקודות יש כמה דרכים
    1 תפתחו PowerShell ותווטו אל תיקייה שבו נמצא הקובץ ps1 ps1 ותריצו שם_הקובץ.ps1 או אפילו מנוווט למקום אחר אבל תשתמשו בנתיב
    2 פשוט קליק ימני על הקובץ ו Run with PowerShell

    בחלק הבא אם יהיה ביקוש נדבר על משתנים תנאים ולולאות

    א תגובה 1 תגובה אחרונה
    12
    • H מנותק
      H מנותק
      hartkhartk
      כתב נערך לאחרונה על ידי
      #2

      תגובות? הערות? יש?

      M תגובה 1 תגובה אחרונה
      0
      • H hartkhartk

        תגובות? הערות? יש?

        M מנותק
        M מנותק
        MAKRO
        כתב נערך לאחרונה על ידי
        #3

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

        תגובה 1 תגובה אחרונה
        5
        • H hartkhartk

          אוטומציות PowerShell בקבצי ps1 המדריך המלא חלק א

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

          אז דבר ראשון מה זה בכלל PowerShell ומה ההבדל בינו לבין cmd?

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

          מה שאני כן רוצה לדבר על זה זה המגביל המתקדם של cmd-bat שזה
          PowerShell-ps1

          למעשה PowerShell הוא הדור החדש של cmd

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

          Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
          

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

          לבדיקה אם זה כבר מאושר למשתמש הרצת סקריפטים תריצו

          Get-ExecutionPolicy
          

          אם התוצאה זה Restricted אז זה חסום וצריך להריץ שוב את הפתיחה

          תצרו קובץ בסיומת ps1 ותפתחו אותו עם כל עורך טקסט

          כעת אפשר להכניס לקובץ פקודות

          שימו לב שכל פקודה ופקודה לבד יכולים להריץ ישירות בטרנימל אבל לרשימת פקודות ולבדיקות (if else) וללולאות ועוד צריך קובץ סקריפט בסיומת ps1

          שימו לב שבשביל שזה יעבוד תקין אסור להיות בנתיבים תווים בעברית

          פתחתי קובץ איך אני מתחיל?

          1 הדפסה לקונסול

          נתחיל בפקודה הראשונה הדפסת טקסט לקונסול

          Write-Output "הטקסט שלך"
          

          2 ניווט

          ועכשיו לניווט במיקום בקבצים בחלון PowerShell
          פותחים את הפקודה בתווים cd ממשיכים עם גרשיים שבתוכם הנתיב
          הנתיבים (בלי cd) ישמשו אותנו בקובץ ps1
          שימו לב לפונקציונליות
          יש שני סוגי נתיבים
          למשל: נניח שזה הנתיב לקובץ

          C:\Temp\power\a.ps1
          

          ואתם נמצאים ב PowerShell בנתיב

          c:\Temp
          

          תוכלו להריץ בשני דרכים
          1 נתיב יחסי

          ".\power\a.ps1"
          

          רק אם אתם במיקום הנכון

          2 נתיב מלא

          c:\Temp\power\a.ps1
          

          ללא תלות במיקום
          נתיב יחסי תמיד מתחיל ב

          .\
          

          ולמה? המשמעות של . זה תיקייה נוכחית ו \ זה מפריד לחלק הבא

          נתיב מלא תמיד מתחיל באות האנגלית של שם הכונן ונקודתיים : וסלאש ** למשל

          c:\
          

          המשמעות של . (נקודה) זה התיקיה הנוכחית
          המשמעות של .. (שני נקודות) זה ניווט אחד אחורה אל תיקייה אחורית
          המשמעות של ** זה מפריד בין החלקים ומכניס אל תיקייה\קובץ פנימי

          תאתגרו את עצמכם

          הפקודה הבאה

          c:\Temp\potosh\..\..\intel\.\.\..
          

          היכן זה יגמר?

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

          3 מבנה הפקודות

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

          שימו לב שיש שלושה סוגח פרמטרים. פרמטרים מיקומיים, פרמטרים לא-מיקומיים, ופרמטרי דגל

          1 פרמטרים מיקומיים ניתן לכתוב גם בלי שם הפרמטר כל עוד שומרים על הסדר של הפרמטרים בפקודה

          2 פרמטרים לא-מיקומיים אותו דבר אבל חיבים לכתוב גם את שם הפרמטר

          3 פרמטרי דגל שהם ללא תוכן בכלל רק כמו כפתור קימים ההגדרה דלוקה לא קימים ההגדרה כבויה

          4 העתקה ויצירה של קבצים ותיקיות

          תעקבו אחר המבנה שבחלק 3

          1 יצירה של משהו זה הפקודה New-Item
          סוג המשהו זה הפרמטר -ItemType שימו לב שזה ללא גרשיים, דוגמאות: תיקייה Directory, קובץ File
          ומיקום המשהו זה הפרמטר -path שימו לב שזה צריך להיות כולל שם המשהו בסוף הנתיב ואם זה קובץ אז כולל נקודה וסיומת
          לדוגמה

          New-Item -ItemType File -Path "C:\Temp\test.txt"
          

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

          New-Item "C:\Temp\test.txt" -ItemType File
          

          כי -path זה פרמטר מיקומי בעוד -ItemType זה פרמטר לא מיקומי

          שימו לב שאם הקובץ קיים זה יתן שגיאה אם אתם רוצים שזה יחליף את הקיים תוסיפו דגל -Force

          2 העתקה של משהו זה הפקודה Copy-Item
          וזה מקבל פרמטר מיקומי שמכיל את הנתיב מוצא שממנו מעתקים כולל שם התיקיה\קובץ.סיומת שאותו מעתיקים ועוד פרמטר נתיב יעד שלשם מעתיקים
          שימו לב שאם זה תיקייה לא ריקה צריך להוסיף דגל -Recurse בשביל שזה יקבל גישה לכל התוכן שבתוכו
          ושוב פעם אם זה קיים זה יתן שגיאה אם אתם רוצים שזה יחליף תוסיפו דגל -Force

          3 למחיקה של משהו זה הפקודה Remove-Item
          שמקבל פרמטר מיקומי נתיב הדבר שרוצים למחוק (ושוב אם זה קובץ אז כולל שם.סיומת)
          שימו לב שאם אתם מוחקים תיקייה אם יש לזה תוכן תצתרכו להוסיף -Recurse

          שימו לב שאם אתם רוצים שזה ימחק גם קבצים מוסתרים\קריאה בלבד תוסיפו את הדגל -Force

          להרצת הקובץ לאחר כתיבת הפקודות יש כמה דרכים
          1 תפתחו PowerShell ותווטו אל תיקייה שבו נמצא הקובץ ps1 ps1 ותריצו שם_הקובץ.ps1 או אפילו מנוווט למקום אחר אבל תשתמשו בנתיב
          2 פשוט קליק ימני על הקובץ ו Run with PowerShell

          בחלק הבא אם יהיה ביקוש נדבר על משתנים תנאים ולולאות

          א מנותק
          א מנותק
          אלדד הדני 0
          כתב נערך לאחרונה על ידי
          #4

          @hartkhartk כל הכבוד
          כדאי שתראה איך מטפלים במחרוזות, חיתוך / שליפה / טרימינג וכדומה

          תגובה 1 תגובה אחרונה
          0

          • התחברות

          • אין לך חשבון עדיין? הרשמה

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