דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך

עזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך

מתוזמן נעוץ נעול הועבר תכנות
43 פוסטים 9 כותבים 1.9k צפיות 6 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD dovid

    @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    מסתבר שיש לנו דרכי פעולה שונות...

    ללא ספק...

    אם כן תריץ chcp 65001 לפני הפקודה ותמצא נחת. (עובד ב-CMD)
    או ב-powershell:

    [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    

    אכן!! אבל למה בC# ובנוד לא הצלחתי בשום קידוד? מאה תודות!

    yossizY מחובר
    yossizY מחובר
    yossiz
    כתב ב נערך לאחרונה על ידי
    #26

    @dovid אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    אבל למה בC# ובנוד לא הצלחתי בשום קידוד

    קשה לענות על זה בלי שתשתף קובץ

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    תגובה 1 תגובה אחרונה
    4
    • מעלה ומורידמ מנותק
      מעלה ומורידמ מנותק
      מעלה ומוריד
      כתב ב נערך לאחרונה על ידי
      #27

      @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

      • צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה

      הסקריפט לא משנה את שם המסמך אלא משכפל אותו עם השם הרצוי, מה שיכול לגרום לכך שאם יתוקן, הסקריפט ירוץ בלי להפסיק, כיוון שתמיד ישארו קבצים לא מטופלים.

      מנע בזבוז זמן, זכה את הרבים!

      dovidD תגובה 1 תגובה אחרונה
      2
      • מעלה ומורידמ מעלה ומוריד

        @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

        • צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה

        הסקריפט לא משנה את שם המסמך אלא משכפל אותו עם השם הרצוי, מה שיכול לגרום לכך שאם יתוקן, הסקריפט ירוץ בלי להפסיק, כיוון שתמיד ישארו קבצים לא מטופלים.

        dovidD מחובר
        dovidD מחובר
        dovid
        ניהול
        כתב ב נערך לאחרונה על ידי
        #28

        @מעלה-ומוריד צריך להחליף את Copy-Item לMove-Item.

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        מלאמ chvC 2 תגובות תגובה אחרונה
        1
        • dovidD dovid

          @מעלה-ומוריד צריך להחליף את Copy-Item לMove-Item.

          מלאמ מנותק
          מלאמ מנותק
          מלא
          כתב ב נערך לאחרונה על ידי מלא
          #29

          @מעלה-ומוריד

          אפשר להוסיף מספור-רץ לשם הקובץ,
          ועם המספור גם להגביל את הריצה לפי מספר הקבצים שהיו בהפעלה.

          מעלה ומורידמ תגובה 1 תגובה אחרונה
          1
          • dovidD dovid

            @מעלה-ומוריד צריך להחליף את Copy-Item לMove-Item.

            chvC מנותק
            chvC מנותק
            chv
            כתב ב נערך לאחרונה על ידי
            #30

            @dovid אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

            @מעלה-ומוריד צריך להחליף את Copy-Item לMove-Item.

            לא יותר פשוט rename?

            בלוג | מייל

            תגובה 1 תגובה אחרונה
            0
            • מעלה ומורידמ מנותק
              מעלה ומורידמ מנותק
              מעלה ומוריד
              כתב ב נערך לאחרונה על ידי
              #31

              @dovid מעולה, תודה!
              נקודה נוספת, בקובץ שהעליתי שם התורם "אנונימי אנונימי" אינו שם פרטי ומשפחה אלא כפילות, כך בכל המסמכים למשל "דוד מנהל דוד מנהל"
              מה יש לשנות בשביל שהסקריפט ישלוף רק חצי?
              מאה ואחת תודות!

              מנע בזבוז זמן, זכה את הרבים!

              תגובה 1 תגובה אחרונה
              0
              • מלאמ מלא

                @מעלה-ומוריד

                אפשר להוסיף מספור-רץ לשם הקובץ,
                ועם המספור גם להגביל את הריצה לפי מספר הקבצים שהיו בהפעלה.

                מעלה ומורידמ מנותק
                מעלה ומורידמ מנותק
                מעלה ומוריד
                כתב ב נערך לאחרונה על ידי
                #32

                @מלא אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                @מעלה-ומוריד

                אפשר להוסיף מספור-רץ לשם הקובץ,
                ועם המספור גם להגביל את הריצה לפי מספר הקבצים שהיו בהפעלה.

                האם תוכל להכניס את זה בסקריפט?
                בשבילי זה אפילו לא טורקית 😞

                מנע בזבוז זמן, זכה את הרבים!

                תגובה 1 תגובה אחרונה
                0
                • OdedDvirO OdedDvir

                  @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                  יש עדיין מה לשפר בסקריפט שכתבתי:

                  אני לא מבין בPS אבל הנה השני סנט שלי:

                  צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה

                  לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

                  צריך לטפל שבהרצה שנייה הסקריפט יתעלם מקבצים שכבר טופלו

                  לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

                  צריך לסנן תווים מיוחדים מתוך השם החדש הקובץ

                  $Path.Split([IO.Path]::GetInvalidFileNameChars()) -join '_'
                  

                  ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

                  ישר כח על העזרה @yossiz !

                  מעלה ומורידמ מנותק
                  מעלה ומורידמ מנותק
                  מעלה ומוריד
                  כתב ב נערך לאחרונה על ידי
                  #33

                  @odeddvir אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                  לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

                  יותר יעיל יהיה להוסיף לשם הקובץ גם את התאריך המופיע על הקבלה
                  (אפשר רק את הערך של היום, מכיוון שהתיקיות ממילא מחולקות לפי חודשים)

                  מנע בזבוז זמן, זכה את הרבים!

                  chvC תגובה 1 תגובה אחרונה
                  0
                  • מעלה ומורידמ מעלה ומוריד

                    @odeddvir אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                    לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

                    יותר יעיל יהיה להוסיף לשם הקובץ גם את התאריך המופיע על הקבלה
                    (אפשר רק את הערך של היום, מכיוון שהתיקיות ממילא מחולקות לפי חודשים)

                    chvC מנותק
                    chvC מנותק
                    chv
                    כתב ב נערך לאחרונה על ידי
                    #34

                    @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

                    בלוג | מייל

                    ח מעלה ומורידמ 2 תגובות תגובה אחרונה
                    2
                    • chvC chv

                      @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

                      ח מנותק
                      ח מנותק
                      חוקר
                      כתב ב נערך לאחרונה על ידי
                      #35

                      @chv אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                      @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

                      איני יודע מה אצלו, אבל לי יצא שבוע שעבר לקראת סוף שנת המס שביצעתי תרומה והוצרכתי לחלק אותה לשני תשלומים בשני כרטיסי אשראי נפרדים בגלל המסגרת..
                      כמובן שקיבלתי שם אוטומטי 2 קבלות.
                      רק דוגמא שזה ייתכן

                      תגובה 1 תגובה אחרונה
                      2
                      • chvC מנותק
                        chvC מנותק
                        chv
                        כתב ב נערך לאחרונה על ידי chv
                        #36

                        אוקיי @חוקר .. הוא לא ענה לי אבל מספיק לי שיכול להיות כזה סיטואציה.
                        @מעלה-ומוריד תגיד אם הקוד הזה טוב ועובד:

                        param([string]$path = '.')
                        
                        $pdftotext = "path to pdftotext"
                        
                        [Console]::OutputEncoding = [text.encoding]::utf8
                        
                        Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
                          $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9
                          $donor = ($donor -split ' ' | Select-Object -Unique) -join ' '
                          $datee = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4
                          $datee = ($datee -split ' ' )[0].Substring(2, 2)
                          $text = '{0}{1}{2}' -f $donor.Substring(2), ' ', $datee
                          $counter = 1
                          $file = '{0}{1}{2}{3}' -f $_.DirectoryName, '\', $text, '.pdf'
                          while (Test-Path -Path $file) {
                            $text = '{0}{1}{2}{3}({4})' -f $donor.Substring(2), ' ', $datee, ' ', $counter++
                            $file = '{0}{1}{2}{3}' -f $_.DirectoryName, '\', $text, '.pdf'
                          }
                          $_ | Rename-Item -NewName "$($text).pdf"
                        }
                        

                        צריך לשנות בשורה 3 לנתיב לקובץ pdftotext.
                        זה הקוד של @yossiz שערכתי קצת

                        = עריכה =
                        שכחתי לציין מה זה עושה:
                        סורק את השם + התאריך. (את שם התורם אני מאחד - מוריד את הכפליות)
                        משנה את שם הקובץ ל: שם התורם + תאריך היום בחודש בלבד.
                        במקרה וכבר יש קובץ עם השם הזה - הוא משנה את השם ל:שם התורם וכו' + מספר (מתחיל מ-(1) והלאה לפי העניין).

                        בלוג | מייל

                        מעלה ומורידמ תגובה 1 תגובה אחרונה
                        7
                        • chvC chv

                          אוקיי @חוקר .. הוא לא ענה לי אבל מספיק לי שיכול להיות כזה סיטואציה.
                          @מעלה-ומוריד תגיד אם הקוד הזה טוב ועובד:

                          param([string]$path = '.')
                          
                          $pdftotext = "path to pdftotext"
                          
                          [Console]::OutputEncoding = [text.encoding]::utf8
                          
                          Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
                            $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9
                            $donor = ($donor -split ' ' | Select-Object -Unique) -join ' '
                            $datee = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4
                            $datee = ($datee -split ' ' )[0].Substring(2, 2)
                            $text = '{0}{1}{2}' -f $donor.Substring(2), ' ', $datee
                            $counter = 1
                            $file = '{0}{1}{2}{3}' -f $_.DirectoryName, '\', $text, '.pdf'
                            while (Test-Path -Path $file) {
                              $text = '{0}{1}{2}{3}({4})' -f $donor.Substring(2), ' ', $datee, ' ', $counter++
                              $file = '{0}{1}{2}{3}' -f $_.DirectoryName, '\', $text, '.pdf'
                            }
                            $_ | Rename-Item -NewName "$($text).pdf"
                          }
                          

                          צריך לשנות בשורה 3 לנתיב לקובץ pdftotext.
                          זה הקוד של @yossiz שערכתי קצת

                          = עריכה =
                          שכחתי לציין מה זה עושה:
                          סורק את השם + התאריך. (את שם התורם אני מאחד - מוריד את הכפליות)
                          משנה את שם הקובץ ל: שם התורם + תאריך היום בחודש בלבד.
                          במקרה וכבר יש קובץ עם השם הזה - הוא משנה את השם ל:שם התורם וכו' + מספר (מתחיל מ-(1) והלאה לפי העניין).

                          מעלה ומורידמ מנותק
                          מעלה ומורידמ מנותק
                          מעלה ומוריד
                          כתב ב נערך לאחרונה על ידי מעלה ומוריד
                          #37

                          @chv תודה ענקית!
                          משום מה הוא נתן את (1) כמעט בכל הקבצים (מלבד שניים), זה קרה אחרי שהוא כבר שינה את השמות, כלומר בשלב ב'.
                          כמו כן, עדיין קיימת הבעיה של תווים לא חוקיים (") ש @OdedDvir הביא למעלה פתרון לגביה.
                          חוץ מזה פיקס, ואני אסיר תודה, לך וליוסי. אשריכם ישראל.
                          הנה הפלט:

                          Test-Path : Illegal characters in path.
                          At C:\Users\This_user\Desktop\myscript.ps1:15 char:10
                          +   while (Test-Path -Path $file) {
                          +          ~~~~~~~~~~~~~~~~~~~~~
                              + CategoryInfo          : InvalidArgument: (C:\Users\This_u...איר יערי 25.pdf:String) [Test-Path], ArgumentExcepti
                             on
                              + FullyQualifiedErrorId : ItemExistsArgumentError,Microsoft.PowerShell.Commands.TestPathCommand
                          
                          Rename-Item : Illegal characters in path.
                          At C:\Users\This_user\Desktop\myscript.ps1:19 char:8
                          +   $_ | Rename-Item -NewName "$($text).pdf"
                          +        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              + CategoryInfo          : NotSpecified: (:) [Rename-Item], ArgumentException
                              + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.RenameItemCommand
                          
                          

                          וזה, סתם פיקנטריה:

                          צריך : The term 'צריך' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
                          the spelling of the name, or if a path was included, verify that the path is correct and try again.
                          At C:\Users\This_user\Desktop\myscript.ps1:21 char:1
                          + צריך לשנות בשורה 3 לנתיב לקובץ pdftotext.
                          + ~~~~
                              + CategoryInfo          : ObjectNotFound: (צריך:String) [], CommandNotFoundException
                              + FullyQualifiedErrorId : CommandNotFoundException
                          
                          

                          🙂

                          מנע בזבוז זמן, זכה את הרבים!

                          chvC תגובה 1 תגובה אחרונה
                          1
                          • chvC chv

                            @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

                            מעלה ומורידמ מנותק
                            מעלה ומורידמ מנותק
                            מעלה ומוריד
                            כתב ב נערך לאחרונה על ידי מעלה ומוריד
                            #38

                            @chv אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                            @מעלה-ומוריד יש בכלל כאלה כפולים? אני מתכווין האם יש מצב שיש שתי קבלות באותו יום - לאותו תורם?

                            זה קבלות שמופקות אוטומטית, ולפעמים אנשים מכניסים באתר רק את השם הפרטי למשל.

                            d4b34ec3-ccdb-4b81-b801-10585a2f4e00-image.png

                            מנע בזבוז זמן, זכה את הרבים!

                            תגובה 1 תגובה אחרונה
                            0
                            • מעלה ומורידמ מעלה ומוריד

                              @chv תודה ענקית!
                              משום מה הוא נתן את (1) כמעט בכל הקבצים (מלבד שניים), זה קרה אחרי שהוא כבר שינה את השמות, כלומר בשלב ב'.
                              כמו כן, עדיין קיימת הבעיה של תווים לא חוקיים (") ש @OdedDvir הביא למעלה פתרון לגביה.
                              חוץ מזה פיקס, ואני אסיר תודה, לך וליוסי. אשריכם ישראל.
                              הנה הפלט:

                              Test-Path : Illegal characters in path.
                              At C:\Users\This_user\Desktop\myscript.ps1:15 char:10
                              +   while (Test-Path -Path $file) {
                              +          ~~~~~~~~~~~~~~~~~~~~~
                                  + CategoryInfo          : InvalidArgument: (C:\Users\This_u...איר יערי 25.pdf:String) [Test-Path], ArgumentExcepti
                                 on
                                  + FullyQualifiedErrorId : ItemExistsArgumentError,Microsoft.PowerShell.Commands.TestPathCommand
                              
                              Rename-Item : Illegal characters in path.
                              At C:\Users\This_user\Desktop\myscript.ps1:19 char:8
                              +   $_ | Rename-Item -NewName "$($text).pdf"
                              +        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                  + CategoryInfo          : NotSpecified: (:) [Rename-Item], ArgumentException
                                  + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.RenameItemCommand
                              
                              

                              וזה, סתם פיקנטריה:

                              צריך : The term 'צריך' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
                              the spelling of the name, or if a path was included, verify that the path is correct and try again.
                              At C:\Users\This_user\Desktop\myscript.ps1:21 char:1
                              + צריך לשנות בשורה 3 לנתיב לקובץ pdftotext.
                              + ~~~~
                                  + CategoryInfo          : ObjectNotFound: (צריך:String) [], CommandNotFoundException
                                  + FullyQualifiedErrorId : CommandNotFoundException
                              
                              

                              🙂

                              chvC מנותק
                              chvC מנותק
                              chv
                              כתב ב נערך לאחרונה על ידי
                              #39

                              @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                              עדיין קיימת הבעיה של תווים לא חוקיים (") ש @OdedDvir הביא למעלה פתרון לגביה.

                              אני לא הצלחתי להבין איך אמורים ליישם את מה שהוא הביא שם.
                              אדרבא מי שמבין שיכתוב.

                              @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                              משום מה הוא נתן את (1) כמעט בכל הקבצים (מלבד שניים), זה קרה אחרי שהוא כבר שינה את השמות, כלומר בשלב ב'.

                              ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).
                              יש לך גיבוי לכל מה שאתה עושה, ברור?

                              @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                              חוץ מזה פיקס, ואני אסיר תודה, לך וליוסי. אשריכם ישראל.

                              מאוד שמח שעזרתי

                              (בתכלס זה קוד שיוסי כתב, הכנסתי קצת מניפולציות על הטקסט)

                              בלוג | מייל

                              מעלה ומורידמ תגובה 1 תגובה אחרונה
                              4
                              • ח מנותק
                                ח מנותק
                                חוקר
                                כתב ב נערך לאחרונה על ידי
                                #40

                                על כל השרשור כאן אני לא יכול להתאפק מלכתוב שני מילים
                                "אשריכם ישראל"

                                תגובה 1 תגובה אחרונה
                                8
                                • chvC chv

                                  @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                                  עדיין קיימת הבעיה של תווים לא חוקיים (") ש @OdedDvir הביא למעלה פתרון לגביה.

                                  אני לא הצלחתי להבין איך אמורים ליישם את מה שהוא הביא שם.
                                  אדרבא מי שמבין שיכתוב.

                                  @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                                  משום מה הוא נתן את (1) כמעט בכל הקבצים (מלבד שניים), זה קרה אחרי שהוא כבר שינה את השמות, כלומר בשלב ב'.

                                  ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).
                                  יש לך גיבוי לכל מה שאתה עושה, ברור?

                                  @מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                                  חוץ מזה פיקס, ואני אסיר תודה, לך וליוסי. אשריכם ישראל.

                                  מאוד שמח שעזרתי

                                  (בתכלס זה קוד שיוסי כתב, הכנסתי קצת מניפולציות על הטקסט)

                                  מעלה ומורידמ מנותק
                                  מעלה ומורידמ מנותק
                                  מעלה ומוריד
                                  כתב ב נערך לאחרונה על ידי
                                  #41

                                  @chv אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                                  ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).

                                  לא ממש הבנתי למה הוא נותן מספור גם לקבצים שאינם כפולים. (וכמו שכתבתי, זה קורה בשלב ב', קודם הוא משנה את השם לכולם, ואח"כ מוסיף מספרים.

                                  יש לך גיבוי לכל מה שאתה עושה, ברור?

                                  בוודאי 🙂

                                  מנע בזבוז זמן, זכה את הרבים!

                                  yossizY תגובה 1 תגובה אחרונה
                                  1
                                  • מעלה ומורידמ מעלה ומוריד

                                    @chv אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                                    ברור, זה מיועד להריץ פעם אחת בלבד. כי הוא פשוט סורק את הקבצים הקיימים בתקייה (מקווה שכתבתי ברור).

                                    לא ממש הבנתי למה הוא נותן מספור גם לקבצים שאינם כפולים. (וכמו שכתבתי, זה קורה בשלב ב', קודם הוא משנה את השם לכולם, ואח"כ מוסיף מספרים.

                                    יש לך גיבוי לכל מה שאתה עושה, ברור?

                                    בוודאי 🙂

                                    yossizY מחובר
                                    yossizY מחובר
                                    yossiz
                                    כתב ב נערך לאחרונה על ידי yossiz
                                    #42

                                    @מעלה-ומוריד

                                    param([string]$path = '.')
                                     
                                    $pdftotext = "C:\path\to\PdfToText.exe"
                                     
                                    [Console]::OutputEncoding = [text.encoding]::utf8
                                     
                                    Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
                                      if ($_.BaseName -cmatch '^[A-Z0-9]{10}$') { # Check filename matches format
                                        $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 # Get donor line
                                        $donor = $donor -replace "[$([Regex]::Escape(-join [IO.Path]::GetInvalidFileNameChars()))]", '_' # Replace illegal characters
                                        $donor = $donor -replace "[\u202b\u202c]", "" # Strip bidi chars
                                        $donor = (($donor -split ' ' | Select-Object -Unique) -join ' ').Trim() # Remove double name
                                        $date = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4 # Get date line
                                        $date = $date -replace '^[^0-9\/]*([0-9/]+)[^0-9/]*$', '$1' # Get date
                                        $date = $date -replace "[\u202b\u202c]", "" # Strip bidi chars
                                        $date = $date -replace '/', '_'
                                        $filename = '{0}_({1}_{2}).pdf' -f $_.BaseName, $donor, $date
                                        $_ | Rename-Item -NewName $filename
                                      }
                                    }
                                    

                                    עדכן אותנו אם עדיין יש שגיאות.
                                    הסקריפט פועל רק על קבצים שהשם שלהם מתאים לפורמט של "10 אותיות גדולות או מספרים".
                                    מימשתי את הצעותיו המעולות של @OdedDvir

                                    לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

                                    לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

                                    ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

                                    ולמדתי קצת powershell על הדרך.

                                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                    מעלה ומורידמ תגובה 1 תגובה אחרונה
                                    8
                                    • yossizY yossiz

                                      @מעלה-ומוריד

                                      param([string]$path = '.')
                                       
                                      $pdftotext = "C:\path\to\PdfToText.exe"
                                       
                                      [Console]::OutputEncoding = [text.encoding]::utf8
                                       
                                      Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
                                        if ($_.BaseName -cmatch '^[A-Z0-9]{10}$') { # Check filename matches format
                                          $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 # Get donor line
                                          $donor = $donor -replace "[$([Regex]::Escape(-join [IO.Path]::GetInvalidFileNameChars()))]", '_' # Replace illegal characters
                                          $donor = $donor -replace "[\u202b\u202c]", "" # Strip bidi chars
                                          $donor = (($donor -split ' ' | Select-Object -Unique) -join ' ').Trim() # Remove double name
                                          $date = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4 # Get date line
                                          $date = $date -replace '^[^0-9\/]*([0-9/]+)[^0-9/]*$', '$1' # Get date
                                          $date = $date -replace "[\u202b\u202c]", "" # Strip bidi chars
                                          $date = $date -replace '/', '_'
                                          $filename = '{0}_({1}_{2}).pdf' -f $_.BaseName, $donor, $date
                                          $_ | Rename-Item -NewName $filename
                                        }
                                      }
                                      

                                      עדכן אותנו אם עדיין יש שגיאות.
                                      הסקריפט פועל רק על קבצים שהשם שלהם מתאים לפורמט של "10 אותיות גדולות או מספרים".
                                      מימשתי את הצעותיו המעולות של @OdedDvir

                                      לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

                                      לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

                                      ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

                                      ולמדתי קצת powershell על הדרך.

                                      מעלה ומורידמ מנותק
                                      מעלה ומורידמ מנותק
                                      מעלה ומוריד
                                      כתב ב נערך לאחרונה על ידי מעלה ומוריד
                                      #43

                                      @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

                                      @מעלה-ומוריד

                                      param([string]$path = '.')
                                       
                                      $pdftotext = "C:\path\to\PdfToText.exe"
                                       
                                      [Console]::OutputEncoding = [text.encoding]::utf8
                                       
                                      Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process {
                                        if ($_.BaseName -cmatch '^[A-Z0-9]{10}$') { # Check filename matches format
                                          $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 # Get donor line
                                          $donor = $donor -replace "[$([Regex]::Escape(-join [IO.Path]::GetInvalidFileNameChars()))]", '_' # Replace illegal characters
                                          $donor = $donor -replace "[\u202b\u202c]", "" # Strip bidi chars
                                          $donor = (($donor -split ' ' | Select-Object -Unique) -join ' ').Trim() # Remove double name
                                          $date = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 4 # Get date line
                                          $date = $date -replace '^[^0-9\/]*([0-9/]+)[^0-9/]*$', '$1' # Get date
                                          $date = $date -replace "[\u202b\u202c]", "" # Strip bidi chars
                                          $date = $date -replace '/', '_'
                                          $filename = '{0}_({1}_{2}).pdf' -f $_.BaseName, $donor, $date
                                          $_ | Rename-Item -NewName $filename
                                        }
                                      }
                                      

                                      עדכן אותנו אם עדיין יש שגיאות.
                                      הסקריפט פועל רק על קבצים שהשם שלהם מתאים לפורמט של "10 אותיות גדולות או מספרים".
                                      מימשתי את הצעותיו המעולות של @OdedDvir

                                      לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

                                      לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

                                      ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

                                      ולמדתי קצת powershell על הדרך.

                                      נהדר! פצצה!
                                      גם השארת השם המקורי חשובה מצד עצמה.
                                      יישר כח גדול מאוד. לא ראיתי באופק דרך להתמודד עם 1424 קבלות. זה פשוט ישועה.

                                      ולמדתי הרבה על מידות טובות ונתינה על הדרך.

                                      @chv
                                      @yossiz

                                      מנע בזבוז זמן, זכה את הרבים!

                                      תגובה 1 תגובה אחרונה
                                      5
                                      • dovidD dovid העביר נושא זה מ-תכנות ב-
                                      תגובה
                                      • תגובה כנושא
                                      התחברו כדי לפרסם תגובה
                                      • מהישן לחדש
                                      • מהחדש לישן
                                      • הכי הרבה הצבעות


                                      • 1
                                      • 2
                                      • 3
                                      בא תתחבר לדף היומי!
                                      • התחברות

                                      • אין לך חשבון עדיין? הרשמה

                                      • התחברו או הירשמו כדי לחפש.
                                      • פוסט ראשון
                                        פוסט אחרון
                                      0
                                      • דף הבית
                                      • קטגוריות
                                      • פוסטים אחרונים
                                      • משתמשים
                                      • חיפוש
                                      • חוקי הפורום