שינוי שם לקובץ השמעה לפי תאריך לועזי ב-PowerShell
-
שימו לב! שינויים ושיפורים בקוד יועדכנו מעת לעת.
יש לכם שלוחה עם השמעת קבצים לפי תאריך לועזי?
אתם צריכים לשנות כל פעם, כל קובץ בנפרד לתאריך המתאים?כלי חדש פשוט ויעיל מבית david מ"תחומים" לתועלת הכלל.
באפשרות להשמיע קבצים לפי תאריך לועזי.
לדוג': הקובץ"20200929"
יושמע היום.
להכניס בתיקייה אחת את כל השיעורים, ובהפעלת הפקודה,
ישנה אתשם הקובץ
לפי ערךתאריך לועזי
שאזין לו בתחילה.
ההזנה מתבצעת דרך עריכת הקוד בתוכנת Windows PowerShell ISE קישור להורדה
אפשרות 1. ידלג את השבתות, שבהן אין שיעורים. כלומר כל שבוע ידלג את שבת, ואח"כ ימשיך לשנות את השם לפי התאריך של ראשון. כי אם אין שיעורים לשבת, אלא רק בימים א-ו והוא יקרא לשיעור של ראשון פרשת נח ע"ש תאריך של שבת בראשית, אז ביום ראשון הוא יאחז בשיעור של יום שני.מעתיקים את הקוד הבא לWindows PowerShell ISE, ומדביקים שם את הקוד הבא:
$path = "D:\זמני\test-dates" $firstDate = Get-Date -Date "2020-10-01" $firstDate.AddDays(-1) Get-ChildItem $path | Foreach-Object { while($true){ $firstDate = $firstDate.AddDays(1) if($firstDate.DayOfWeek.value__ -eq 6) { continue } break; } Rename-Item $_.FullName $firstDate.ToString("yyyyMMdd") }
משנים את הנתיב למעלה
"D:\זמני\test-dates"
לנתיב התיקיה הרלוונטי, ומריצים עם הלחצן הירוק או F5.
פלא פלאים!!!אפשרות ב. הקוד הבא ידלג גם על שבתות וגם על החגים (שני ימי ראש השנה, יו"כ, שני ימי סוכות, שני ימי פסח וחג שבועות).
$path = "D:\זמני\test-dates" $firstDate = Get-Date -Date "2020-10-01" $firstDate = $firstDate.AddDays(-1) $heb = New-Object System.Globalization.HebrewCalendar Get-ChildItem $path | Foreach-Object { while($true){ $firstDate = $firstDate.AddDays(1) if($firstDate.DayOfWeek.value__ -eq 6) { continue } $hebMonth = $heb.GetMonth($firstDate) $hebDay = $heb.GetDayOfMonth($firstDate) if(($hebMonth -eq 1) -and $hebDay -in (1,2,10,15,22)) { continue } $nisan = 8 $sivan = 9 if($heb.IsLeapYear($heb.GetYear($firstDate))) { $nisan = 8 $sivan = 10 } if(($hebMonth -eq $nisan) -and $hebDay -in (15,21)) { continue } if(($hebMonth -eq $sivan) -and $hebDay -eq 6) { continue } break; } Rename-Item $_.FullName $firstDate.ToString("yyyyMMdd") }
אפשרות ג. למי שמעוניין בהרצת הקוד בלי דילוג של ימים כלל, אלא בסדר רציף.
$path = "C:\ymgr" $firstDate = Get-Date -Date "2020-10-01" $firstDate = $firstDate.AddDays(-1) Get-ChildItem $path | Foreach-Object { $firstDate = $firstDate.AddDays(1) Rename-Item $_.FullName $firstDate.ToString("yyyyMMdd") }
-
-
@צבי-10
מה זה הכפתור הירוק ? -
-
@שמחה-זו-הסיסמא תסדר כאן את העניינים, הוספתי למעלה את האייקון, זה טוב?
-
@צבי-10 תבקש מ david בתחומים