none
בחירת SubString ב Powershell RRS feed

  • שאלה

  • שלום לכם,

    קודם כך אני מתנצל אם זה לא הפורום הנכון לזה.
    ועכשיו לשאלה. יש לי String מסויים לדוגמא:
    mailto:?body=http%3A%2F%2Fccmexec.com%2Fconfiguration-manager-2007-sp2-hotfix-list%2F&subject=Configuration%20Manager%202007%20SP2%20hotfix%20list%20-%20CCMEXEC.COM%20%E2%80%93%20System%20Center%20blog
    אני רוצה בעזרת PowerShell להוציא איזור מסויים ב String הזה לפי סימנים שאמורים להופיע ב String הזה. ניסיתי לשחק בעזרת TrimStart ו TrimEnd אבל זה מחייב אותי לשים את כל ה String שאני רוצה להוציא אותו. ומה שאני רוצה שהפקודה תחפש ב String לדוגמא ?body= ותתחיל לחתוך אחרי מה שציינתי לו ושלא יהיה חשוב מה מופיע לפני ה body, אותו הדבר אני רוצה לעשות גם מהסוף עד סימן מסויים ולא חשוב בכלל מה רשום מהסוף. יש למישהו רעיון?

    יום ראשון 28 אפריל 2013 14:58

תשובות

  • אם הכוונה שלך היא לחלץ את הלינק, תוכל לעשות זאת באמצעות regular expression. הדוגמא הזו גם משתמשת בשיטה UrlDecode כדי לתרגם את התווין המייחודים של הקישור.


    $url = 'mailto:?body=http%3A%2F%2Fccmexec.com%2Fconfiguration-manager-2007-sp2-hotfix-list%2F&subject=Configuration%20Manager%202007%20SP2%20hotfix%20list%20-%20CCMEXEC.COM%20%E2%80%93%20System%20Center%20blog'

    [System.Net.WebUtility]::UrlDecode($url) -replace '^[^=]+=([^&]+).+$','$1'

    בגדול, זה מאתר את הלינק ומחליף את כל המחרוזת בלינק עצמו.




    Shay Levy [MVP]
    PowerShay.com
    PowerShell Toolbar

    • סומן כתשובה על-ידי Tzahi_Sh יום שישי 23 אוגוסט 2013 14:51
    יום חמישי 02 מאי 2013 06:56
  • You can do it with the combination of Substring and Indexof.

    i.e

    $Var = "23-Aug-2013 12:53:00 this is the date and time"

    lets say you want to get everything from "2013" and before "time"

    you can do the following:

    $Var.Substring($Var.IndexOf("2013"),($Var.IndexOf("time")-$Var.IndexOf("2013")))

    Hope it helps

    • סומן כתשובה על-ידי Tzahi_Sh יום שישי 23 אוגוסט 2013 14:50
    יום שישי 23 אוגוסט 2013 10:02

כל התגובות

  • הי,

    תוכל לפנות לפורום המתאים של PowerShell.

    אלי.


    Email:eshlomo9@hotmail.com Twitter:https://twitter.com/EliShlomo1

    יום שני 29 אפריל 2013 18:49
  • אם הכוונה שלך היא לחלץ את הלינק, תוכל לעשות זאת באמצעות regular expression. הדוגמא הזו גם משתמשת בשיטה UrlDecode כדי לתרגם את התווין המייחודים של הקישור.


    $url = 'mailto:?body=http%3A%2F%2Fccmexec.com%2Fconfiguration-manager-2007-sp2-hotfix-list%2F&subject=Configuration%20Manager%202007%20SP2%20hotfix%20list%20-%20CCMEXEC.COM%20%E2%80%93%20System%20Center%20blog'

    [System.Net.WebUtility]::UrlDecode($url) -replace '^[^=]+=([^&]+).+$','$1'

    בגדול, זה מאתר את הלינק ומחליף את כל המחרוזת בלינק עצמו.




    Shay Levy [MVP]
    PowerShay.com
    PowerShell Toolbar

    • סומן כתשובה על-ידי Tzahi_Sh יום שישי 23 אוגוסט 2013 14:51
    יום חמישי 02 מאי 2013 06:56
  • You can do it with the combination of Substring and Indexof.

    i.e

    $Var = "23-Aug-2013 12:53:00 this is the date and time"

    lets say you want to get everything from "2013" and before "time"

    you can do the following:

    $Var.Substring($Var.IndexOf("2013"),($Var.IndexOf("time")-$Var.IndexOf("2013")))

    Hope it helps

    • סומן כתשובה על-ידי Tzahi_Sh יום שישי 23 אוגוסט 2013 14:50
    יום שישי 23 אוגוסט 2013 10:02
  • Hi Shahar

    It's look great, for now is not relevant but I save this template to future.

    TNX and happy weekend.

    יום שישי 23 אוגוסט 2013 14:50