-
@צבי-10 אמר בפקודה לשינוי שם קובץ לפי תאריך לועזי:
התהליך לענ"ד:
בתיקייה זו יש קבצי שמע.
שנה שם לפי תאריך לועזי_ "הקש תאריך לועזי"
20200929
הרץ לולאה עד הסוף
דלג על שבת אם יש פקודה כזו, ואם לא ישאל
איזה יום היום? 3
ולפי זה יחשב
7,14,21,28,35,40 דלג יום לועזי והזן ערך היום הבא.לא הבנתי כלל מה הולך בתיאור שלך.
@dovid אמר בפקודה לשינוי שם קובץ לפי תאריך לועזי:
יש לך תיקיה כעת במחשב עם אוסף קבצים, ואתה רוצה פקודה שמשנה את שמם לרצף תאיריכם שהראשון הוא פרמטר שתזין, תוך דילוג על שבתות וחגים
לפי איזה סדר הוא יעבור על הקבצים? לפי שם? לפי תאריך יצירה?
(הוספת סיבוך גדול עם המילה "חגים"...) -
אני מבין שלא משנה הסדר, סוג של טיפ יומי (או הלכה יומית במושגים שלנו).
@yossiz אמר בפקודה לשינוי שם קובץ לפי תאריך לועזי:
(הוספת סיבוך גדול עם המילה "חגים"...)
לא מסכים איתך, זה כמה שורות בpowershell.
(ראה פה https://tchumim.com/post/4176) -
@yossiz רגע, יש משהו ששכחתי להסביר.
חגים לא משנה לי כי המערכת לא פעילה בחגים ושבתות,
אלא מה שמשנה כאן זה שבקבצים הוא ידלג על תאריך שבת. כי אין לי שיעורים לשבת אלא רק בימים א-ו ואם הוא יקרא לשיעור של ראשון פרשת נח ע"ש תאריך של שבת בראשית, אז ביום ראשון הוא יאחז בשיעור של יום שני.
לפי מה יחליף, לא יודע אולי לפי תאריך יצירה (הקבצים יורדים למחשב זה נשאר, נראה לי שהוא כותב תאריך יצירה חדש?) -
@צבי-10 תפתח במחשב שלך תוכנת Windows PowerShell ISE
תדביק שמה את הקוד הבא:$path = "D:\זמני\test-dates" $firstDate = Get-Date -Date "2020-10-01" $firstDate = $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") }
תשנה את הנתיב למעלה לנתיב התיקיה הרלוונטי, ותריץ עם הלחצן הירוק.
-
@צבי-10 זה עם דילוג על החגים (שני ימי ראש השנה, יו"כ, שני ימי סוכות, שני ימי פסח וחג שבועות).
$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") }
-
@dovid תודה רבה בשם כל הציבור!!!
בלי דילוג, כלומר תאריך רציף. זה תקין? (הורדתי את התנאי IF)$path = "C:\ymgr" $firstDate = Get-Date -Date "2020-10-01" $firstDate = $firstDate.AddDays(-1) Get-ChildItem $path | Foreach-Object { while($true){ $firstDate = $firstDate.AddDays(1) { continue } break; } Rename-Item $_.FullName $firstDate.ToString("yyyyMMdd") }
-
@צבי-10 ככה זה רציף:
$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") }