איך לחלץ את הערך Path מתוך מערך Powershall
-
@yossiz כתב באיך לחלץ את הערך Path מתוך מערך Powershall:
@dovid נראה לי שהוא רוצה לקבל מערך של כל ה-
Path
$changes | select Path
או באריכות
$changes | Select-Object -Property Path
אכן אני רוצה לקבל מערך
אבל משום מה הוא לא מחזיר לי את הנתיב אלא שורות ריקות.PS X:\test> $changes | select Path Path ---- PS X:\test> $changes | Select-Object -Property Path Path ---- PS X:\test>
-
אני שם לב שהחסרתי אולי קצת דברים (אמנם כתבתי אותם בנושאים אחרים אב נכתוב את זה גם כאן)
הקוד הראשון שלי היה$changes = Compare-Object $folder1Items $folder2Items -Property Name, Path -IncludeEqual
הפלט שאני מקבל הוא
Name Path SideIndicator ---- ---- ------------- X:\MyBackup\Test\Backup.ps1 => X:\MyBackup\Test\Untitled1.ps1 => X:\MyBackup\Test\Untitled2.ps1 => X:\MyBackup\Test\Untitled3.ps1 => X:\MyBackup\Test\zz.ps1 => X:\MyBackup\Test\מצגת של Microsoft PowerPoint חדש.pptx => X:\MyBackup\Test\hj;j\jhtsezkty yfhgvf gf;.txt => X:\MyBackup\Test\hj;j\תיקיה חדשה\jhfd.pub => X:\MyBackup\Test\uri\שדגכעגכי ד.txt => X:\MyBackup\Test\uri\מסמך טקסט חדש.txt => X:\MyBackup\Test\uri\hgfjf\ggg.accdb => X:\Test\Backup.ps1 <= X:\Test\Untitled1.ps1 <= X:\Test\Untitled2.ps1 <= X:\Test\Untitled3.ps1 <= X:\Test\zz.ps1 <= X:\Test\מצגת של Microsoft PowerPoint חדש.pptx <= X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt <= X:\Test\hj;j\תיקיה חדשה\jhfd.pub <= X:\Test\uri\שדגכעגכי ד.txt <= X:\Test\uri\מסמך טקסט חדש.txt <= X:\Test\uri\hgfjf\ggg.accdb <=
בשים לב שהקבצים מ2 התיקיות תואמים אבל הוא לא מחזיר כלל
==
היות והוא בודק לפי שם ונתיב והנתיב לא תואם.
עשיתי בדיקה רק לפיMD5
ואני מקבל תוצאה של==
מה שקורה הוא שאם אני בודק לפי MD5 אני לא מקבל במערך שום ערך אלא רק
==
או= >
וכו'.אמנם כאשר אני בודק בלי שום פרמטר הוא בודק לפי הMD5 אבל מחזיר מערך כמו שכתבתי בפוסט הראשון.
פתרונים???? -
@אוריי כתב באיך לחלץ את הערך Path מתוך מערך Powershall:
אבל משום מה הוא לא מחזיר לי את הנתיב אלא שורות ריקות.
נכון, כי
Compare-Object
לא מחזיר את אובייקט שהבאת לו אלא משהו אחר בלי המאפיין שלPath
@אוריי כתב באיך לחלץ את הערך Path מתוך מערך Powershall:
מה שקורה הוא שאם אני בודק לפי MD5 אני לא מקבל במערך שום ערך אלא רק == או = > וכו'.
כי אין מאפיין
MD5
אלאHash
@אוריי כתב באיך לחלץ את הערך Path מתוך מערך Powershall:אמנם כאשר אני בודק בלי שום פרמטר הוא בודק לפי הMD5 אבל מחזיר מערך כמו שכתבתי בפוסט הראשון.
פתרונים????הפתרון לכל הנ"ל:
$changes = Compare-Object $folder1Items $folder2Items -Property Hash -PassThru -IncludeEqual | select Path
-
@אוריי כתב באיך לחלץ את הערך Path מתוך מערך Powershall:
ותוך כדי כבר הגעתי לתשובה שכתבת ובכל אופן תודה רבה
בשביל לגשת לנתיב שלו אני צריך לגשת ל$changes.InputObject.path
אני כתבתי פתרון שונה (שימוש ב-
PassThru
) כי לא עלה על דעתי שהקוד שלך יכול לעבוד
Powershell מפליא אותי, הרי$changes
הוא מערך, וממתי יש למערך מאפיין בשםInputObject
?
אשמח אם מישהו יאיר את עיניי -
@אוריי כתב באיך לחלץ את הערך Path מתוך מערך Powershall:
@yossiz ראית את הפלט שהבאתי כאן ?
המערך של השם והנתיב נמצא תחת מאפיין שנקראInputObject
כן, זה לא עונה לי על השאלה. כי
InputPath
הוא מאפיין של אובייקט בתוך המערך אבל זה לא מאפיין של המערך עצמומצאתי את התשובה פה
יוצא אם כן שמה שכתבתי למעלה עם הפקודה
select
היה מיותר