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

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

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

איך מעתיקים קובץ ממיקום אחד לשני תוך שמירה על חלק מהנתיב | Powershall

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 2 כותבים 136 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אורייא מנותק
    אורייא מנותק
    אוריי
    כתב ב נערך לאחרונה על ידי אוריי
    #1

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

    $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 "<="}
    
    Copy-Item $updated.Path $folder2 -Recurse -Force
    

    הקוד עובד מעולה אבל אני רוצה לשמור על נתיבים יחסיים.

    זה צילום של קובץ המקור "X:\Test\"
    3602e54c-e4fe-442d-a5e0-079e95c1346e-image.png

    וזה תיקיית המשנה uri
    ab50d1ec-07cd-435b-a5b8-104023adf561-image.png

    וזה תיקיית היעד "X:\MyBackup\Test\"
    הקוד העתיק לי ולא יצר לי תיקייה בשם uri והעתיק לשם את 2 הקבצים.
    76405228-6d93-4f62-be6c-21ff87181078-image.png

    איך אני יכול להעתיק ולשמור על נתיב יחסי.

    ניתן לפנות אלי גם ב al0548446188@gmail.com
    ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

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

      @אוריי משהו כזה עובד?
      (לא בדקתי אם זה עובד)

      $updated | ForEach-Object {
          $dest = $folder2 + ($_.Path -replace $folder1)
          if (!(Test-Path -path $dest)) {
              New-Item $dest -Type Directory
          })
          Copy-Item $updated.Path $dest -Force
      }
      

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

      אורייא תגובה 1 תגובה אחרונה
      1
      • אורייא מנותק
        אורייא מנותק
        אוריי
        השיב לyossiz ב נערך לאחרונה על ידי
        #3

        @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
         
        

        ניתן לפנות אלי גם ב al0548446188@gmail.com
        ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

        yossizY תגובה 1 תגובה אחרונה
        0
        • yossizY מחובר
          yossizY מחובר
          yossiz
          השיב לאוריי ב נערך לאחרונה על ידי
          #4

          @אוריי נראה לי שצריך רק להחליף את ה\ ב\\

          $dest = $folder2 + ($_.Path -replace ($folder1 -replace "\\","\\"))
          

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

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

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

            ניתן לפנות אלי גם ב al0548446188@gmail.com
            ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

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

              מצאתי זה מסיר את שם הקובץ

              (Get-Item $updated.Path).DirectoryName
              

              ניתן לפנות אלי גם ב al0548446188@gmail.com
              ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

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

                לתועלת הציבור הקוד הזה עובד מעולה

                    $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 
                        }
                
                

                כמובן שיש לשנות את הנתיבים

                ניתן לפנות אלי גם ב al0548446188@gmail.com
                ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                תגובה 1 תגובה אחרונה
                1

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

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

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