קובץ BAT לשינוי שמות קבצים במספרים
-
@chv אמר בקובץ BAT לשינוי שמות קבצים במספרים:
תאר את הבקשה שלך כמה שיותר מדויק כדי לחסוך פוסטים של שו"ת
יש לי ספר סרוק משני הצדדים כל צד בקובץ בנפרד - מה שאני רוצה לעשות לשלב את שני הקבצים יחד.
ובכדי לעשות את זה אני רוצה לשנות את השמות של קבצי הPDF למספרים כלומר את הצד הראשון של הספר שיהיה מספרים 1 3 5 וכו' והצד השני של הספר 2 4 6 וכו' ואז להכניס את הכל לתיקיה ולחבר את הכל לקובץ אחד. -
@ספרא צור קובץ bat עם הטקסט הזה:
set /a count=1 setlocal enabledelayedexpansion for /r %%i in (*.pdf) do ( rename "%%i" "!count!.pdf" set /a count+=2 )
בהרצה שלו בתוך התיקייה בה נמצאים כל הקבצים שאתה רוצה לשנות זה ישנה כמו שכתבת.
כדי להשתמש בו לקבצים שיישתנו למספרים הזוגיים (2,4,6) - פשוט תשנה בשורה הראשונה מ-1 ל-2.
ולשמור, ולהריץ כנ"ל.נ.ב. תגבה קודם כל דבר. שלא יהיה פדיחות
-
@chv אמר בקובץ BAT לשינוי שמות קבצים במספרים:
בהרצה שלו בתוך התיקייה בה נמצאים כל הקבצים שאתה רוצה לשנות זה ישנה כמו שכתבת.
כדי להשתמש בו לקבצים שיישתנו למספרים הזוגיים (2,4,6) - פשוט תשנה בשורה הראשונה מ-1 ל-2.
ולשמור, ולהריץ כנ"ל.
נ.ב. תגבה קודם כל דבר. שלא יהיה פדיחותעכשיו אני רואה שיש כאן בעיה אם הוא מגיע למספר 20 (כלומר אם יש יותר מ9 קבצים שהתוצאה זה שהשם מספר 20) הוא משתבש ויש בלבול בקבצים
אשמח מאוד עם יהיה פתרון לבעיה תודה -
@chv אמר בקובץ BAT לשינוי שמות קבצים במספרים:
אני לא מצליח לעשות אצלי בעיה כמו שתיארת.
כשאני מריץ את הסקריפט - גם על תיקייה עם מאות קבצים - הכל עובד חלק והם משתנים למספרים עוקבים בדילוג יחיד.
אולי אתה מריץ את זה כמה פעמים?
מריצים את זה רק פעם אחת בלבד
אחרת זה בהחלט ישתבש.גם אצלי זה מריץ את השמות בצורה טובה הבעיה שזה משבש את הסדר כלומר הקובץ שהיה מספר 20 לפני ההרצה יכול להיות 200 וכד'
-
@chv אמר בקובץ BAT לשינוי שמות קבצים במספרים:
אוקיי עכשיו הבנתי.. חבל שלא תיארת את זה לפני. איך כן הקבצים מסודרים? כלומר איזו אינדיקציה אמורה להיות לסקריפט כדי להבין מי ראשון ומי אחרון? (חוץ מסדר הקבצים - שזה מה שקובע לו עכשיו)
פשוט זה ממוספר 12345 וכו' בסדר עולה - וככה אני רוצה שזה יהיה 1356 כלומר מה שהיה1 שיהיה 1 מה שהיה 2 יהיה3 וכו'
תודה -
@ספרא אמר בקובץ BAT לשינוי שמות קבצים במספרים:
גם אצלי זה מריץ את השמות בצורה טובה הבעיה שזה משבש את הסדר כלומר הקובץ שהיה מספר 20 לפני ההרצה יכול להיות 200 וכד'
זה רק מוצג על המסך ככה או גם התוכן ?
-
@משחזר-מידע אמר בקובץ BAT לשינוי שמות קבצים במספרים:
זה רק מוצג על המסך ככה או גם התוכן ?
מה הפירוש תוכן?
-
@איש-ימיני אמר בקובץ BAT לשינוי שמות קבצים במספרים:
@ספרא
יש לי משהו שמשנה את השמות של קבצי wav לפי קובץ טקסט.
זה כן עובד לפי הסדר.
אולי יוכלו כאן להתאים לך את זה.
מה זה עושה? -
סורי שנעלמתי..
@ספרא אמר בקובץ BAT לשינוי שמות קבצים במספרים:
פשוט זה ממוספר 12345 וכו' בסדר עולה - וככה אני רוצה שזה יהיה 1356 כלומר מה שהיה1 שיהיה 1 מה שהיה 2 יהיה3 וכו'
אוקיי..
אז צריך שהסקריפט קודם יסדר את רשימת הקבצים (אצלו, בתהליך שהוא עושה) לפי סדר על פי שמות (ככה זה יסתדר לפי הסדר של המספרים).
ורק אז ישנה להם את השמות.אין לי כוח לנסות CMD לזה כי זה מסורבל. הנה ככה זה ייראה בפווארשל:
param([string]$path = '.') $count = 1 Get-ChildItem -path $path -Filter '*.pdf' | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) } | ForEach-Object -Process { $filename = '{0}.pdf' -f $count $_ | Rename-Item -NewName $filename $count = $count+2 }
וכנל - השינוי מאי-זוגי לזוגי מתבצע בשורה השניה - count.
אגב -
@איש-ימיני אמר בקובץ BAT לשינוי שמות קבצים במספרים:
@ספרא
יש לי משהו שמשנה את השמות של קבצי wav לפי קובץ טקסט.
זה כן עובד לפי הסדר.
אולי יוכלו כאן להתאים לך את זה.
שינוי שמות.cmd
1.txtו- @ספרא אמר בקובץ BAT לשינוי שמות קבצים במספרים:
@איש-ימיני
תודה עובד מצויןלגמרי לא הבנתי מה זה שונה ממה שכתבתי למעלה (אני פשוט לא רואה שום הבדל. אשמח שתחכימו אותי)
@איש-ימיני אמר בקובץ BAT לשינוי שמות קבצים במספרים:
ניתן להריץ כזה דבר, באופן שירוץ גם על כל תיקיות המשנה?
לכאורה כן אפשרי גם ב-CMD.
אבל כמו שכתבתי עזבו CMD, פווארשל הרבה יותר טוב והרבה יותר מדויק בשביל הדברים האלה.