@pcinfogmach אני יכול לחפש שם כמו תווים מיוחדים? ???
אוריי
-
חיפוש כמה מילים בחיפוש אחד בוורד | תווים מיוחדים -
חיפוש כמה מילים בחיפוש אחד בוורד | תווים מיוחדיםאני רוצה לחפש כמה מילים בוורד (ע"י תווים מיוחדים) אבל אני רוצה לחפש אותם בחיפוש אחד לדוגמא.
([אות][סימן])במצב הזה הוא מתייחס למילה כאותיות
אני רוצה שהוא יתייחס למילה כאל מילה ויחפש מחרוזות שמכילות או אות או סימן.
איך אני יכול לבצע את זה? -
משהו מוזר ב Compare-Object | Powershall@yossiz
הבעיה היא שאם אני מחפש לפי MD5 אני לא מקבל את השדות המלאות
פלטPS X:\test> Compare-Object (Coalesce $folder1Items @("0")) (Coalesce $folder2Items @("0")) -Property MD5 -IncludeEqual MD5 SideIndicator --- ------------- == => => => => => => => => => => => -
איך להשתמש ב Compare-Object Powershall כאשר אחד מהפרמטרים הוא null@yossiz לאחר בדיקה מחודשת מול תיקייה ריקה (מסתבר שמשום מה בתיקייה הקודמת שבדקתי היא לא הייתה ריקה משום מה)
השורה הזו עדיין מחזירה שגיאה של null$changes = Compare-Object (Coalesce $folder1Items @()) (Coalesce $folder2Items @()) -Property Name,Path -IncludeEqualלאחר בדיקות הוספתי בערך להחלפה
"0"
כך$changes = Compare-Object (Coalesce $folder1Items @("0")) (Coalesce $folder2Items @("0")) -Property Name,Path -IncludeEqualוזה פתר את הבעיה ואינו מחזיר שגיאה
אני לא יודע אם זה הפתרון המתאים אבל זה עובד
אם יש פתרון נכון יותר אשמח לשמוע. -
משהו מוזר ב Compare-Object | Powershallאני עושה השוואת קבצים עם Compare-Object
ומשום מה 2 קבצים Compare-Object מזהה אותם כלא שווים (אבל תכלס הם שווים גם ב MD5 )
הנה הפלטPS X:\test> Compare-Object (Coalesce $folder1Items @()) (Coalesce $folder2Items @()) -IncludeEqual InputObject SideIndicator ----------- ------------- @{Algorithm=MD5; Hash=9B0888BB0C3833206679572E35E7A71D; Path=X:\Test\Backup.ps1} == @{Algorithm=MD5; Hash=F0E6F573D63B1F92D16A55714F49B063; Path=X:\Test\Untitled1.ps1} == @{Algorithm=MD5; Hash=9A7CA20549218DE334060E3B30CAAEAE; Path=X:\Test\Untitled2.ps1} == @{Algorithm=MD5; Hash=369174E7CBE8F581CB9B3599D94B70DD; Path=X:\Test\Untitled3.ps1} == @{Algorithm=MD5; Hash=DF19BFB4A1F8829AD055854AD8027FBF; Path=X:\Test\zz.ps1} == @{Algorithm=MD5; Hash=369174E7CBE8F581CB9B3599D94B70DD; Path=X:\Test\Untitled3 - עותק.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\מצגת של Microsoft PowerPoint חדש.pptx} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\בדיקה.docx} == @{Algorithm=MD5; Hash=0627B4727E2BFE1D1CB7F06B82BFCC5C; Path=X:\Test\hj;j\תיקיה חדשה\jhfd.pub} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\שדגכעגכי ד.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\מסמך טקסט חדש.txt} <= @{Algorithm=MD5; Hash=15EDAC198DFF6373F91CA0E59FA054FD; Path=X:\Test\uri\hgfjf\ggg.accdb} <= PS X:\test> Compare-Object $folder1Items $folder2Items -IncludeEqual InputObject SideIndicator ----------- ------------- @{Algorithm=MD5; Hash=9B0888BB0C3833206679572E35E7A71D; Path=X:\Test\Backup.ps1} == @{Algorithm=MD5; Hash=F0E6F573D63B1F92D16A55714F49B063; Path=X:\Test\Untitled1.ps1} == @{Algorithm=MD5; Hash=9A7CA20549218DE334060E3B30CAAEAE; Path=X:\Test\Untitled2.ps1} == @{Algorithm=MD5; Hash=369174E7CBE8F581CB9B3599D94B70DD; Path=X:\Test\Untitled3.ps1} == @{Algorithm=MD5; Hash=DF19BFB4A1F8829AD055854AD8027FBF; Path=X:\Test\zz.ps1} == @{Algorithm=MD5; Hash=369174E7CBE8F581CB9B3599D94B70DD; Path=X:\Test\Untitled3 - עותק.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\מצגת של Microsoft PowerPoint חדש.pptx} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\בדיקה.docx} == @{Algorithm=MD5; Hash=0627B4727E2BFE1D1CB7F06B82BFCC5C; Path=X:\Test\hj;j\תיקיה חדשה\jhfd.pub} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\שדגכעגכי ד.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\מסמך טקסט חדש.txt} <= @{Algorithm=MD5; Hash=15EDAC198DFF6373F91CA0E59FA054FD; Path=X:\Test\uri\hgfjf\ggg.accdb} <= PS X:\test> $folder1Items Algorithm Hash Path --------- ---- ---- MD5 9B0888BB0C3833206679572E35E7A71D X:\Test\Backup.ps1 MD5 F0E6F573D63B1F92D16A55714F49B063 X:\Test\Untitled1.ps1 MD5 9A7CA20549218DE334060E3B30CAAEAE X:\Test\Untitled2.ps1 MD5 369174E7CBE8F581CB9B3599D94B70DD X:\Test\Untitled3.ps1 MD5 DF19BFB4A1F8829AD055854AD8027FBF X:\Test\zz.ps1 MD5 369174E7CBE8F581CB9B3599D94B70DD X:\Test\Untitled3 - עותק.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\מצגת של Microsoft PowerPoint חדש.pptx MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\hj;j\בדיקה.docx MD5 0627B4727E2BFE1D1CB7F06B82BFCC5C X:\Test\hj;j\תיקיה חדשה\jhfd.pub MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\uri\שדגכעגכי ד.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\uri\מסמך טקסט חדש.txt MD5 15EDAC198DFF6373F91CA0E59FA054FD X:\Test\uri\hgfjf\ggg.accdb PS X:\test> $folder2Items Algorithm Hash Path --------- ---- ---- MD5 9B0888BB0C3833206679572E35E7A71D X:\MyBackup\Test\Backup.ps1 MD5 F0E6F573D63B1F92D16A55714F49B063 X:\MyBackup\Test\Untitled1.ps1 MD5 9A7CA20549218DE334060E3B30CAAEAE X:\MyBackup\Test\Untitled2.ps1 MD5 FB404E76315C54940AC9BE72178803D2 X:\MyBackup\Test\Untitled3.ps1 MD5 DF19BFB4A1F8829AD055854AD8027FBF X:\MyBackup\Test\zz.ps1 MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\מצגת של Microsoft PowerPoint חדש.pptx MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\hj;j\jhtsezkty yfhgvf gf;.txt MD5 0627B4727E2BFE1D1CB7F06B82BFCC5C X:\MyBackup\Test\hj;j\תיקיה חדשה\jhfd.pub MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\uri\שדגכעגכי ד.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\uri\מסמך טקסט חדש.txt MD5 15EDAC198DFF6373F91CA0E59FA054FD X:\MyBackup\Test\uri\hgfjf\ggg.accdbיש הסבר למה זה קורה? ומה עושים כדי לפתור את זה?
עריכה
עשיתי עוד בדיקה ופשוט הוספתי קובץ חדש בתיקייה האחרונה
ומשום מה באופן תמוה הוא מחזיר לא תואם ב2 קבצים האחרונים ללא קשר לסוג הקובץ
הנה הפלטPS X:\test> Compare-Object (Coalesce $folder1Items @()) (Coalesce $folder2Items @()) -IncludeEqual InputObject SideIndicator ----------- ------------- @{Algorithm=MD5; Hash=9B0888BB0C3833206679572E35E7A71D; Path=X:\Test\Backup.ps1} == @{Algorithm=MD5; Hash=F0E6F573D63B1F92D16A55714F49B063; Path=X:\Test\Untitled1.ps1} == @{Algorithm=MD5; Hash=9A7CA20549218DE334060E3B30CAAEAE; Path=X:\Test\Untitled2.ps1} == @{Algorithm=MD5; Hash=369174E7CBE8F581CB9B3599D94B70DD; Path=X:\Test\Untitled3.ps1} == @{Algorithm=MD5; Hash=DF19BFB4A1F8829AD055854AD8027FBF; Path=X:\Test\zz.ps1} == @{Algorithm=MD5; Hash=369174E7CBE8F581CB9B3599D94B70DD; Path=X:\Test\Untitled3 - עותק.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\מצגת של Microsoft PowerPoint חדש.pptx} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\בדיקה.docx} == @{Algorithm=MD5; Hash=0627B4727E2BFE1D1CB7F06B82BFCC5C; Path=X:\Test\hj;j\תיקיה חדשה\jhfd.pub} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\שדגכעגכי ד.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\מסמך טקסט חדש.txt} == @{Algorithm=MD5; Hash=15EDAC198DFF6373F91CA0E59FA054FD; Path=X:\Test\uri\hgfjf\ggg.accdb} <= @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\hgfjf\testtotext.txt} <= PS X:\test> $folder1Items Algorithm Hash Path --------- ---- ---- MD5 9B0888BB0C3833206679572E35E7A71D X:\Test\Backup.ps1 MD5 F0E6F573D63B1F92D16A55714F49B063 X:\Test\Untitled1.ps1 MD5 9A7CA20549218DE334060E3B30CAAEAE X:\Test\Untitled2.ps1 MD5 369174E7CBE8F581CB9B3599D94B70DD X:\Test\Untitled3.ps1 MD5 DF19BFB4A1F8829AD055854AD8027FBF X:\Test\zz.ps1 MD5 369174E7CBE8F581CB9B3599D94B70DD X:\Test\Untitled3 - עותק.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\מצגת של Microsoft PowerPoint חדש.pptx MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\hj;j\בדיקה.docx MD5 0627B4727E2BFE1D1CB7F06B82BFCC5C X:\Test\hj;j\תיקיה חדשה\jhfd.pub MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\uri\שדגכעגכי ד.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\uri\מסמך טקסט חדש.txt MD5 15EDAC198DFF6373F91CA0E59FA054FD X:\Test\uri\hgfjf\ggg.accdb MD5 D41D8CD98F00B204E9800998ECF8427E X:\Test\uri\hgfjf\testtotext.txt PS X:\test> $folder2Items Algorithm Hash Path --------- ---- ---- MD5 9B0888BB0C3833206679572E35E7A71D X:\MyBackup\Test\Backup.ps1 MD5 F0E6F573D63B1F92D16A55714F49B063 X:\MyBackup\Test\Untitled1.ps1 MD5 9A7CA20549218DE334060E3B30CAAEAE X:\MyBackup\Test\Untitled2.ps1 MD5 FB404E76315C54940AC9BE72178803D2 X:\MyBackup\Test\Untitled3.ps1 MD5 DF19BFB4A1F8829AD055854AD8027FBF X:\MyBackup\Test\zz.ps1 MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\מצגת של Microsoft PowerPoint חדש.pptx MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\hj;j\jhtsezkty yfhgvf gf;.txt MD5 0627B4727E2BFE1D1CB7F06B82BFCC5C X:\MyBackup\Test\hj;j\תיקיה חדשה\jhfd.pub MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\uri\שדגכעגכי ד.txt MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\uri\מסמך טקסט חדש.txt MD5 15EDAC198DFF6373F91CA0E59FA054FD X:\MyBackup\Test\uri\hgfjf\ggg.accdb MD5 D41D8CD98F00B204E9800998ECF8427E X:\MyBackup\Test\uri\hgfjf\testtotext.txt -
איך לחלץ את הערך Path מתוך מערך Powershallאת האמת הוודעתי ל Powershell רק בשבועות האחרונים והוא פשוט כלי שמדהים אותי ממש כל פעם מחדש
כל יום "יהיו בעיניך כחדשים" -
איך לחלץ את הערך Path מתוך מערך Powershall -
איך להשתמש ב Compare-Object Powershall כאשר אחד מהפרמטרים הוא nullעכשיו אני שם לב שהשתרבב לך $ במקום @
-
איך להשתמש ב Compare-Object Powershall כאשר אחד מהפרמטרים הוא null@yossiz , זה אינו מחזיר שגיאה.
אבל הוא לא מזהה לי ==
ראה את הפלט הבא יש שם משהו מוזר עם הקוד שכתבת (כאשר יש קבצים ב2 התיקיות)PS X:\test> function Coalesce($a, $b) { if ($a -ne $null) { $a } else { $b } } $folder1Items = Get-ChildItem $folder1 -Recurse | Get-FileHash -Algorithm MD5 $folder2Items = Get-ChildItem $folder2 -Recurse | Get-FileHash -Algorithm MD5 PS X:\test> Compare-Object $folder1Items $folder2Items -IncludeEqual InputObject SideIndicator ----------- ------------- @{Algorithm=MD5; Hash=9B0888BB0C3833206679572E35E7A71D; Path=X:\Test\Backup.ps1} == @{Algorithm=MD5; Hash=F0E6F573D63B1F92D16A55714F49B063; Path=X:\Test\Untitled1.ps1} == @{Algorithm=MD5; Hash=9A7CA20549218DE334060E3B30CAAEAE; Path=X:\Test\Untitled2.ps1} == @{Algorithm=MD5; Hash=FB404E76315C54940AC9BE72178803D2; Path=X:\Test\Untitled3.ps1} == @{Algorithm=MD5; Hash=DF19BFB4A1F8829AD055854AD8027FBF; Path=X:\Test\zz.ps1} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\מצגת של Microsoft PowerPoint חדש.pptx} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt} == @{Algorithm=MD5; Hash=0627B4727E2BFE1D1CB7F06B82BFCC5C; Path=X:\Test\hj;j\תיקיה חדשה\jhfd.pub} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\שדגכעגכי ד.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\מסמך טקסט חדש.txt} == @{Algorithm=MD5; Hash=15EDAC198DFF6373F91CA0E59FA054FD; Path=X:\Test\uri\hgfjf\ggg.accdb} == PS X:\test> Compare-Object (Coalesce $folder1Items @()) (Coalesce $folder2Items$()) -IncludeEqual InputObject SideIndicator ----------- ------------- => @{Algorithm=MD5; Hash=9B0888BB0C3833206679572E35E7A71D; Path=X:\Test\Backup.ps1} <= @{Algorithm=MD5; Hash=F0E6F573D63B1F92D16A55714F49B063; Path=X:\Test\Untitled1.ps1} <= @{Algorithm=MD5; Hash=9A7CA20549218DE334060E3B30CAAEAE; Path=X:\Test\Untitled2.ps1} <= @{Algorithm=MD5; Hash=FB404E76315C54940AC9BE72178803D2; Path=X:\Test\Untitled3.ps1} <= @{Algorithm=MD5; Hash=DF19BFB4A1F8829AD055854AD8027FBF; Path=X:\Test\zz.ps1} <= @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\מצגת של Microsoft PowerPoint חדש.pptx} <= @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt} <= @{Algorithm=MD5; Hash=0627B4727E2BFE1D1CB7F06B82BFCC5C; Path=X:\Test\hj;j\תיקיה חדשה\jhfd.pub} <= @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\שדגכעגכי ד.txt} <= @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\מסמך טקסט חדש.txt} <= @{Algorithm=MD5; Hash=15EDAC198DFF6373F91CA0E59FA054FD; Path=X:\Test\uri\hgfjf\ggg.accdb} <= PS X:\test> -
איך לחלץ את הערך Path מתוך מערך Powershallלא שמתי לב שכתבת את זה
ותוך כדי כבר הגעתי לתשובה שכתבת ובכל אופן תודה רבה
בשביל לגשת לנתיב שלו אני צריך לגשת ל$changes.InputObject.path -
איך להשתמש ב Compare-Object Powershall כאשר אחד מהפרמטרים הוא null@yossiz
מחזיר שגיאהCompare-Object : A positional parameter cannot be found that accepts argument 'Coalesce'. At line:5 char:12 + $changes = Compare-Object Coalesce($folder1Items, @()) Coalesce($fold ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Compare-Object], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.CompareObjectCommand -
איך לחלץ את הערך Path מתוך מערך Powershallאני שם לב שהחסרתי אולי קצת דברים (אמנם כתבתי אותם בנושאים אחרים אב נכתוב את זה גם כאן)
הקוד הראשון שלי היה$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@dovid כתב באיך לחלץ את הערך Path מתוך מערך Powershall:
נראה לי ככה, תבדוק אם עובד
$changes[0].Pathלא מחזיר כלום
-
איך לחלץ את הערך 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> -
איך לחלץ את הערך Path מתוך מערך Powershallאני מקבל מערך בדוגמת הפלט הבא
PS X:\test> $changes InputObject SideIndic ator ----------- --------- @{Algorithm=MD5; Hash=9B0888BB0C3833206679572E35E7A71D; Path=X:\Test\Backup.ps1} == @{Algorithm=MD5; Hash=F0E6F573D63B1F92D16A55714F49B063; Path=X:\Test\Untitled1.ps1} == @{Algorithm=MD5; Hash=9A7CA20549218DE334060E3B30CAAEAE; Path=X:\Test\Untitled2.ps1} == @{Algorithm=MD5; Hash=40177EA95504C4CC9C0F51F0A18BDF1F; Path=X:\Test\Untitled3.ps1} == @{Algorithm=MD5; Hash=DF19BFB4A1F8829AD055854AD8027FBF; Path=X:\Test\zz.ps1} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\מצגת של Microsoft PowerPoint חדש.pptx} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\hj;j\jhtsezkty yfhgvf gf;.txt} == @{Algorithm=MD5; Hash=0627B4727E2BFE1D1CB7F06B82BFCC5C; Path=X:\Test\hj;j\תיקיה חדשה\jhfd.pub} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\שדגכעגכי ד.txt} == @{Algorithm=MD5; Hash=D41D8CD98F00B204E9800998ECF8427E; Path=X:\Test\uri\מסמך טקסט חדש.txt} == @{Algorithm=MD5; Hash=15EDAC198DFF6373F91CA0E59FA054FD; Path=X:\Test\uri\hgfjf\ggg.accdb} ==ואני רוצה לשלוף רק את הערך Path (נתיב) מתוך המערך
ניסיתי את זה וללא הצלחה$changes.Pathוכן את זה וללא הצלחה
$changes.@{Path} -
איך להשתמש ב Compare-Object Powershall כאשר אחד מהפרמטרים הוא nullאני משתמש בקוד הבא
$folder1Items = Get-ChildItem $folder1 -Recurse | Get-FileHash -Algorithm MD5 $folder2Items = Get-ChildItem $folder2 -Recurse | Get-FileHash -Algorithm MD5 $changes = Compare-Object $folder1Items $folder2Items -Property Name, Path -IncludeEqualאבל אם 1 מהפרמטרים הוא null הוא מחזיר שגיאה של
Compare-Object : Cannot bind argument to parameter 'DifferenceObject' because it is null. At line:22 char:41 + $changes = Compare-Object $folder1Items $folder2Items -Property Name, ... + ~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObje ctCommandכלומר אם אחד מהפרמטרים לא מכיל שום קובץ אני מקבל את השגיאה הנ"ל.
ברצוני שימשיך להשוות גם מול 0 קבצים כלומר שהתוצאה תהיה שהכל לא תואם. -
איך מעתיקים קובץ ממיקום אחד לשני תוך שמירה על חלק מהנתיב | Powershallלתועלת הציבור הקוד הזה עובד מעולה
$folder1 = "X:\Test" $folder2 = "X:\MyBackup\Test" $folder1Items = Get-ChildItem $folder1 -Recurse | Get-FileHash -Algorithm MD5 $folder2Items = Get-ChildItem $folder2 -Recurse | Get-FileHash -Algorithm MD5 $changes = Compare-Object $folder1Items $folder2Items -Property Name, Path -IncludeEqual $updated = $changes | Where-Object {$_.SideIndicator -eq "<="} $updated | ForEach-Object { $ww = (Get-Item $_.Path).DirectoryName.replace($folder1,$folder2) if (!(Test-Path -path $ww)) { New-Item $ww -Type Directory } Copy-Item $_.Path $ww -Force }כמובן שיש לשנות את הנתיבים
-
איך מעתיקים קובץ ממיקום אחד לשני תוך שמירה על חלק מהנתיב | Powershallמצאתי זה מסיר את שם הקובץ
(Get-Item $updated.Path).DirectoryName -
איך מעתיקים קובץ ממיקום אחד לשני תוך שמירה על חלק מהנתיב | Powershallעובד, אבל צריך להסיר לאחר ההחלפה של הנתיבים את שם הקובץ והסיומות כי הוא פותח תיקייה בשם של הקובץ
-
איך מעתיקים קובץ ממיקום אחד לשני תוך שמירה על חלק מהנתיב | Powershall@yossiz כתב באיך מעתיקים קובץ ממיקום אחד לשני תוך שמירה על חלק מהנתיב | Powershall:
@אוריי משהו כזה עובד?
(לא בדקתי אם זה עובד)$updated | ForEach-Object { $dest = $folder2 + ($_.Path -replace $folder1) if (!(Test-Path -path $dest)) { New-Item $dest -Type Directory }) Copy-Item $updated.Path $dest -Force }מחזיר שגיאה כבר בשורה הזו
$dest = $folder2 + ($_.Path -replace $folder1)פלט של שורה בודדת (לאחר הרצת כל הקוד שלפני)
PS X:\test> $dest = $folder2 + ($_.Path -replace $folder1) The regular expression pattern X:\Test\ is not valid. At line:1 char:1 + $dest = $folder2 + ($_.Path -replace $folder1) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (X:\Test\:String) [], RuntimeException + FullyQualifiedErrorId : InvalidRegularExpression