בקשה | מחפש סקריפט להעתקת שמות תיקיות ותתי תיקיות
-
שלום
אשמח םא מישהו יצור לי את הדבר הבא:
סקריפט שאני מפעיל אותו על מיקום מסויים
שזה תחילת העץ
לדוג' אני מפעיל אותו על התייקית יוזר של בכונן C
והוא יוצר לי את אותה התייקיה מחדש
ככה ש
יש לו את כל התייוקת ותתי התיקיות ללא התוכן שלהם
אבל
בכל תיקיה יש את קובץ TXT שמפרט מה היה בתיקיה - טבלה של שם קובץ גודל קובץ תאריך וכו' כל המידע על כל הקבצים בתייקיה
התוצאה:
בין רגע יש לי קובץ גיבוי למחשב שאומר לי מה בדיוק היה איפה והוא שוקל כמה מ"ב במקרה הטוב..
שימושים:
1 הורדתי למחשב פלילסיט יפה שבניתי ביוטיוב. אני מעוניין לשלוח לחבר את רשימת השירים לא ע"י צילומי מסך וגם אין לי שום עניין לשלוח לו את קבצי השירים עצמם כי הם ניתנים להשגה ביוטיוב - הסקריפםט יעזור.
2 אני לחוץ להתקין ווינדוס על המחשב אבל אני חייב קובץ גיבוי שיתן לי מידע כללי על המחשב כדי שאם אכן משהו חשוב נאבד אדע מהיכן לשחזר
3 אני מטפל במחשב ישן או כונן שנמצא ואני רוצה לשלוח לבעל הכלי אחסון הזה את הקבצים שיאמר לי אם זה שלו והאם אפשר למחוק - ואני עושה צילומי מסך על תיקיות רנדולמליות - במקום למסור לו עץ מסודר של הכל ומיד הוא יזהה..תודה לעוזרים!
-
ה הנני העני סימן נושא זה כשאלה
-
@אברהם-גלסר
תודה! (תודה גם לקודמיך , פשוט כבר ניסיתי את שלך והספיק לי..)עשיתי 2 שיפורים:
א. להוסיף לסקריפט שבפרטי הקבצים יהיה עוד כמה שדות תלוי לפי סוג הקובץ:
אודיו: משך (אורך), אמן, אלבום, ז'אנר, שם השיר, שנה, קצב נתונים (Bitrate).
וידאו: משך, רזולוציה/מידות, קצב פריימים (FPS), קצב נתונים.
מסמכים: כותרת, מחבר, כמות עמודים, כמות מילים.
תוכנות (.exe/.dll): תיאור הקובץ, גרסת קובץ, יצרן/חברה, שם מוצר.
תמונות: רזולוציה, תאריך צילום, דגם מצלמה.
ב. כל קובץ יוצג לפרטיו ואחריו הקובץ הבא לפרטיו ולא כמו כרגע שזה טבלה כי בTXT טבלה זה יוצא לא יפה וסתם שורות ארוכותמדריך מלא:
הסבר שימוש:
א. מורידים הסקריפט:
הסקריפט העדכני:
FolderTreeBackup.ps1 (פתח בכרטיסייה חדשה ע"מ להוריד)
ב. מסדרים את הפקודה לפי הנתיבים שלכם[הפקודה נמצאית באות ג']:
בעצם הנתיב הראשון זה היכן הסקריפט ממוקם
השני זה על מה להפעיל את הסקריפט
השלישי זה היכן למקם את הפלט היוצא מן הסקריפט
ג. פותחים פאוור של כמנהל סתם רגיל(לא בתוך תייקיה או משהו)
ומדביקים בפאוור של את זה:powershell -ExecutionPolicy Bypass -File "C:\Users\kiosk\Downloads\FolderTreeBackup.ps1" -Source "D:\שירים" -Destination "C:\Users\kiosk\Downloads\Backup_Songs_Tree"ד. ממתינים להודעת סיום:
תוצאת הצלחה נראית כך בפאוור של:Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> powershell -ExecutionPolicy Bypass -File "C:\Users\kiosk\Downloads\FolderTreeBackup.ps1" -Source "D:\שירים" -Destination "C:\Users\kiosk\Downloads\Backup_Songs_Tree" Done (Fast & Targeted)! PS C:\WINDOWS\system32>ה. תוצאה בפועל[בסייר קבצים]:
תייקיה במקור:

[ועל זה כזה דבר לקח כדקה וחצי לסקריפט לפעול]
תייקית פלט:

ו. נוצרים בתיקייה 3 קבצים:
- בכל תיקייה נוצר קובץ בשם __CONTENTS.txt. (פרטי כל קובץ וקובץ בתוך התיקיה. מה כלול בפרטי הקובץ: כמה שדות תלוי לפי סוג הקובץ:
אודיו: משך (אורך), אמן, אלבום, ז'אנר, שם השיר, שנה, קצב נתונים (Bitrate).
וידאו: משך, רזולוציה/מידות, קצב פריימים (FPS), קצב נתונים.
מסמכים: כותרת, מחבר, כמות עמודים, כמות מילים.
תוכנות (.exe/.dll): תיאור הקובץ, גרסת קובץ, יצרן/חברה, שם מוצר.
תמונות: רזולוציה, תאריך צילום, דגם מצלמה.)
בתייקיה הכללית נוצר קובץ- __SUMMARY.txt - סיכום כללי של יצירת הפלט הזו.
בתייקיה הכללית נוצר קובץ- __SCAN_LOG.txt - שגיאות והרשאות שלא ניתן היה לקרוא.
כל המדריך הזה לתוך קובץ README.txt:
README.txt - בכל תיקייה נוצר קובץ בשם __CONTENTS.txt. (פרטי כל קובץ וקובץ בתוך התיקיה. מה כלול בפרטי הקובץ: כמה שדות תלוי לפי סוג הקובץ:
-
משהו בדקה עם AI
@echo off rem ============================================================ rem גיבוי עץ תיקיות - לחיצה כפולה על קובץ זה מפעילה את הסקריפט rem ואז בוחרים תיקיית מקור ותיקיית יעד בחלון גרפי. rem ============================================================ chcp 65001 >nul title גיבוי עץ תיקיות powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0Backup-Tree.ps1" echo. pauseלשמור לקובץ באט
ואת זה לקובץ Backup-Tree.PS1
<# ===================================================================================== גיבוי עץ תיקיות (Backup-Tree) מה הסקריפט עושה: - מקבל תיקיית מקור (לדוגמה C:\Users) ומעתיק רק את מבנה התיקיות שלה (כל התיקיות ותתי-התיקיות) לתיקיית יעד - בלי שום קובץ. - בכל תיקיה ביעד כותב קובץ טקסט בשם _file_list.txt שמפרט בטבלה את כל הקבצים שהיו בתיקיה המקורית: שם קובץ, גודל, תאריך שינוי, תאריך יצירה, ועוד - כולל שמות תיקיות המשנה. - בשורש היעד כותב גם קובץ _OVERVIEW.txt עם סיכום העץ כולו, וקובץ _ERRORS.txt אם היו תיקיות שלא ניתן היה לקרוא. התוצאה: "מפה" מלאה של התיקיה במשקל של כמה מגה-בייטים במקרה הטוב. איך מריצים: 1) לחיצה כפולה על Backup-Tree.bat - ואז בוחרים תיקיית מקור ותיקיית יעד. 2) או משורת הפקודה: powershell -ExecutionPolicy Bypass -File Backup-Tree.ps1 -SourcePath "C:\Users" -DestinationPath "D:\Backup" רכיבים נוספים (לא חובה): -IncludeHidden : כברירת מחדל קבצים ותיקיות נסתרות נכללים. השתמשו ב-NoHidden כדי להשמיט אותם. -NoGui : בלי חלון בחירת תיקיות (מועיל כשמריצים משורת הפקודה). ===================================================================================== #> param( [string]$SourcePath, [string]$DestinationPath, [switch]$NoHidden, [switch]$NoGui ) # --------------------------------------------------------------- # הגדרות כלליות # --------------------------------------------------------------- $ErrorActionPreference = 'Stop' # תמיכה בעברית בחלון המסוף try { [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 } catch { } # בורר תיקיות גרפי (לא חובה) function Select-FolderDialog { param([string]$Description, [string]$InitialDir) try { Add-Type -AssemblyName System.Windows.Forms -ErrorAction Stop | Out-Null } catch { return Read-Host "$Description (הקלד נתיב)" } if (-not ("System.Windows.Forms.FolderBrowserDialog" -as [type])) { return Read-Host "$Description (הקלד נתיב)" } $dialog = New-Object System.Windows.Forms.FolderBrowserDialog $dialog.Description = $Description $dialog.ShowNewFolderButton = $true if ($InitialDir) { try { $dialog.SelectedPath = $InitialDir } catch { } } if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { return $dialog.SelectedPath } return $null } # פורמט גודל קריא: 1.5 MB, 230 KB וכו' function Format-Size { param([long]$Bytes) if ($Bytes -ge 1GB) { return ("{0:N2} GB" -f ($Bytes / 1GB)) } if ($Bytes -ge 1MB) { return ("{0:N2} MB" -f ($Bytes / 1MB)) } if ($Bytes -ge 1KB) { return ("{0:N2} KB" -f ($Bytes / 1KB)) } return ("{0} B" -f $Bytes) } # --------------------------------------------------------------- # איסוף פרמטרים (עם חלונות בחירה למי שמריץ בלחיצה כפולה) # --------------------------------------------------------------- if (-not $SourcePath) { if (-not $NoGui) { $SourcePath = Select-FolderDialog -Description "בחר את תיקיית המקור (תחילת העץ)" -InitialDir $env:USERPROFILE } if (-not $SourcePath) { $SourcePath = Read-Host "הקלד נתיב לתיקיית המקור" } if (-not $SourcePath) { Write-Host "בוטל - לא נבחר מקור." -ForegroundColor Yellow; exit 0 } } if (-not (Test-Path -LiteralPath $SourcePath -PathType Container)) { Write-Host "שגיאה: הנתיב לא קיים או אינו תיקיה:`n $SourcePath" -ForegroundColor Red exit 1 } $SourcePath = (Resolve-Path -LiteralPath $SourcePath).Path.TrimEnd('\') if (-not $DestinationPath) { if (-not $NoGui) { $DestinationPath = Select-FolderDialog -Description "בחר לאן ליצור את עץ הגיבוי (מומלץ: מחוץ לתיקיית המקור)" -InitialDir $env:USERPROFILE } if (-not $DestinationPath) { $srcLeaf = Split-Path $SourcePath -Leaf if (-not $srcLeaf) { $srcLeaf = "Root" } $DestinationPath = Join-Path (Split-Path $SourcePath -Parent) ("TreeBackup_" + $srcLeaf + "_" + (Get-Date -Format 'yyyyMMdd_HHmm')) } } $DestinationPath = [System.IO.Path]::GetFullPath($DestinationPath).TrimEnd('\') if ($DestinationPath -eq $SourcePath) { Write-Host "שגיאה: תיקיית היעד זהה לתיקיית המקור. בחר מיקום אחר." -ForegroundColor Red exit 1 } if ($DestinationPath.StartsWith($SourcePath + '\')) { Write-Host "שגיאה: תיקיית היעד נמצאת בתוך תיקיית המקור. בחר מיקום אחר (לדוגמה D:\ או שולחן העבודה)." -ForegroundColor Red exit 1 } Write-Host "" Write-Host "מקור : $SourcePath" -ForegroundColor Cyan Write-Host "יעד : $DestinationPath" -ForegroundColor Cyan Write-Host "" # --------------------------------------------------------------- # עיקר העבודה # --------------------------------------------------------------- $force = if ($NoHidden) { $false } else { $true } $script:DirCount = 0 $script:FileCount = 0 $script:TotalSize = 0L $script:ErrorLines = [System.Collections.Generic.List[string]]::new() $script:OverviewLines = [System.Collections.Generic.List[string]]::new() $overviewTitle = "סיכום עץ התיקיות - מבנה בלבד (ללא תוכן הקבצים)`r`n" + "מקור : $SourcePath`r`n" + "נוצר : $(Get-Date -Format 'dd/MM/yyyy HH:mm')`r`n" + ("=" * 70) # פונקציה רקורסיבית: יוצרת תיקיה מקבילה ביעד + קובץ רשימה. # IsLink - עבור תיקיות קישור (Junction/Symlink): יוצרים תיקיה + רשימה קצרה, בלי לרדת לעומק function Copy-TreeStructure { param( [System.IO.DirectoryInfo]$CurrentDir, [string]$OutDir, [string]$RelPath, # נתיב יחסי מהמקור, ריק עבור התיקיה הראשית [switch]$IsLink ) # 1) יוצרים את התיקיה המקבילה ביעד New-Item -ItemType Directory -Path $OutDir -Force | Out-Null $script:DirCount++ # תיקיית קישור: רשימה קצרה בלבד if ($IsLink) { $content = [System.Collections.Generic.List[string]]::new() $content.Add("רשימת תוכן התיקיה") $content.Add("==================") $content.Add("") $content.Add("תיקיה מלאה : $($CurrentDir.FullName)") $content.Add("נסרק בתאריך: $(Get-Date -Format 'dd/MM/yyyy HH:mm')") $content.Add("הערה : תיקיית קישור (Junction/Symlink) - התוכן לא נסרק כדי למנוע לולאות") $content.Add("") $content.Add("(תוכנה כקישור - לפרטים מלאים צריך לסרוק את היעד אליו היא מצביעה)") $txtPath = Join-Path $OutDir "_file_list.txt" try { [System.IO.File]::WriteAllLines($txtPath, $content, [System.Text.UTF8Encoding]::new($true)) } catch { $script:ErrorLines.Add("לא ניתן לכתוב את קובץ הרשימה ב- $($CurrentDir.FullName) : $($_.Exception.Message)") } Write-Host ("[{0}] {1} (קישור)" -f $script:DirCount, $RelPath) -ForegroundColor DarkGray return } # 2) אוספים את הקבצים והתיקיות הישירים בתיקיה הזו $files = Get-ChildItem -LiteralPath $CurrentDir.FullName -File -Force:$force -ErrorAction SilentlyContinue $subs = Get-ChildItem -LiteralPath $CurrentDir.FullName -Directory -Force:$force -ErrorAction SilentlyContinue $totalSizeHere = 0L foreach ($f in $files) { $totalSizeHere += $f.Length } # 3) בונים את תוכן קובץ הרשימה $content = [System.Collections.Generic.List[string]]::new() $content.Add("רשימת תוכן התיקיה") $content.Add("==================") $content.Add("") $content.Add("תיקיה מלאה : $($CurrentDir.FullName)") $content.Add("נסרק בתאריך: $(Get-Date -Format 'dd/MM/yyyy HH:mm')") $content.Add("מספר קבצים : $($files.Count)") $content.Add("גודל כולל : $(Format-Size $totalSizeHere)") $content.Add("תיקיות משנה: $($subs.Count)") $content.Add("") $content.Add("-- קבצים בתיקיה ($($files.Count)) --") $content.Add("") if ($files.Count -eq 0) { $content.Add(" (התיקיה ריקה מקבצים)") } else { $rows = $files | Sort-Object Name | Select-Object @{N='שם קובץ'; E={$_.Name}}, @{N='גודל'; E={Format-Size ([long]$_.Length)}}, @{N='שונה לאחרונה'; E={$_.LastWriteTime.ToString('dd/MM/yyyy HH:mm')}}, @{N='נוצר'; E={$_.CreationTime.ToString('dd/MM/yyyy HH:mm')}}, @{N='נסתר'; E={if ($_.Attributes -band [System.IO.FileAttributes]::Hidden) { 'כן' } else { '' }}} $table = $rows | Format-Table -AutoSize | Out-String -Width 320 $content.Add($table.TrimEnd("`r", "`n", ' ')) } $content.Add("") $content.Add("-- תיקיות משנה ($($subs.Count)) --") $content.Add("") if ($subs.Count -eq 0) { $content.Add(" (אין תיקיות משנה)") } else { foreach ($s in ($subs | Sort-Object Name)) { $content.Add(" [DIR] $($s.Name)") } } $txtPath = Join-Path $OutDir "_file_list.txt" try { [System.IO.File]::WriteAllLines($txtPath, $content, [System.Text.UTF8Encoding]::new($true)) } catch { $script:ErrorLines.Add("לא ניתן לכתוב את קובץ הרשימה ב- $($CurrentDir.FullName) : $($_.Exception.Message)") } # 4) עדכון סטטיסטיקות כלליות $script:FileCount += $files.Count $script:TotalSize += $totalSizeHere $rel = if ($RelPath) { $RelPath } else { "<שורש>" } $script:OverviewLines.Add(("{0,-45} | {1,7} קבצים | {2,12}" -f $rel, $files.Count, (Format-Size $totalSizeHere))) Write-Host ("[{0}] {1}" -f $script:DirCount, $RelPath) -ForegroundColor Gray # 5) רקורסיה לתיקיות משנה (לא נכנסים לתיקיות קישור כדי להימנע מלולאות) foreach ($s in $subs) { $isLink = ($s.Attributes -band [System.IO.FileAttributes]::ReparsePoint) -ne 0 if ($isLink) { Copy-TreeStructure -CurrentDir $s -OutDir (Join-Path $OutDir $s.Name) -RelPath "$RelPath\$($s.Name)" -IsLink continue } Copy-TreeStructure -CurrentDir $s -OutDir (Join-Path $OutDir $s.Name) -RelPath "$RelPath\$($s.Name)" } } # יצירת תיקיית היעד עצמה New-Item -ItemType Directory -Path $DestinationPath -Force | Out-Null $rootInfo = Get-Item -LiteralPath $SourcePath Copy-TreeStructure -CurrentDir $rootInfo -OutDir $DestinationPath -RelPath "" # --------------------------------------------------------------- # כתיבת קבצי הסיכום בשורש היעד # --------------------------------------------------------------- $overview = [System.Collections.Generic.List[string]]::new() $overview.Add($overviewTitle) $overview.Add("") $overview.Add("מספר תיקיות כולל : $script:DirCount") $overview.Add("מספר קבצים כולל : $script:FileCount") $overview.Add("גודל כולל של כל הקבצים: $(Format-Size $script:TotalSize)") $overview.Add("") $overview.Add("-- כל התיקיות בעץ (קבצים ישירים בכל תיקיה) --") $overview.Add("") foreach ($line in $script:OverviewLines) { $overview.Add($line) } $overviewPath = Join-Path $DestinationPath "_OVERVIEW.txt" [System.IO.File]::WriteAllLines($overviewPath, $overview, [System.Text.UTF8Encoding]::new($true)) if ($script:ErrorLines.Count -gt 0) { $err = [System.Collections.Generic.List[string]]::new() $err.Add("תיקיות שלא ניתן היה לקרוא (לרוב: חסרות הרשאות):") $err.Add("=" * 60) foreach ($e in $script:ErrorLines) { $err.Add($e) } $errPath = Join-Path $DestinationPath "_ERRORS.txt" [System.IO.File]::WriteAllLines($errPath, $err, [System.Text.UTF8Encoding]::new($true)) } # --------------------------------------------------------------- # סיכום למשתמש # --------------------------------------------------------------- Write-Host "" Write-Host "הסתיים!" -ForegroundColor Green Write-Host ("נסרקו {0} תיקיות ו-{1} קבצים (סך הכל {2})." -f $script:DirCount, $script:FileCount, (Format-Size $script:TotalSize)) Write-Host "עץ הגיבוי נוצר כאן: $DestinationPath" -ForegroundColor Cyan Write-Host " - בכל תיקיה: _file_list.txt (רשימת הקבצים שלה)" Write-Host " - בשורש: _OVERVIEW.txt (סיכום כל העץ)" if ($script:ErrorLines.Count -gt 0) { Write-Host " - שים לב: _ERRORS.txt (תיקיות שלא ניתן היה לקרוא)" -ForegroundColor Yellow } Write-Host "" Write-Host "טיפ: לשליחת הרשימה לחבר - דחסו את תיקיית היעד ל-ZIP ושלחו." -ForegroundColor Green -
שלום
אשמח םא מישהו יצור לי את הדבר הבא:
סקריפט שאני מפעיל אותו על מיקום מסויים
שזה תחילת העץ
לדוג' אני מפעיל אותו על התייקית יוזר של בכונן C
והוא יוצר לי את אותה התייקיה מחדש
ככה ש
יש לו את כל התייוקת ותתי התיקיות ללא התוכן שלהם
אבל
בכל תיקיה יש את קובץ TXT שמפרט מה היה בתיקיה - טבלה של שם קובץ גודל קובץ תאריך וכו' כל המידע על כל הקבצים בתייקיה
התוצאה:
בין רגע יש לי קובץ גיבוי למחשב שאומר לי מה בדיוק היה איפה והוא שוקל כמה מ"ב במקרה הטוב..
שימושים:
1 הורדתי למחשב פלילסיט יפה שבניתי ביוטיוב. אני מעוניין לשלוח לחבר את רשימת השירים לא ע"י צילומי מסך וגם אין לי שום עניין לשלוח לו את קבצי השירים עצמם כי הם ניתנים להשגה ביוטיוב - הסקריפםט יעזור.
2 אני לחוץ להתקין ווינדוס על המחשב אבל אני חייב קובץ גיבוי שיתן לי מידע כללי על המחשב כדי שאם אכן משהו חשוב נאבד אדע מהיכן לשחזר
3 אני מטפל במחשב ישן או כונן שנמצא ואני רוצה לשלוח לבעל הכלי אחסון הזה את הקבצים שיאמר לי אם זה שלו והאם אפשר למחוק - ואני עושה צילומי מסך על תיקיות רנדולמליות - במקום למסור לו עץ מסודר של הכל ומיד הוא יזהה..תודה לעוזרים!
פוסט זה נמחק! -
שלום
אשמח םא מישהו יצור לי את הדבר הבא:
סקריפט שאני מפעיל אותו על מיקום מסויים
שזה תחילת העץ
לדוג' אני מפעיל אותו על התייקית יוזר של בכונן C
והוא יוצר לי את אותה התייקיה מחדש
ככה ש
יש לו את כל התייוקת ותתי התיקיות ללא התוכן שלהם
אבל
בכל תיקיה יש את קובץ TXT שמפרט מה היה בתיקיה - טבלה של שם קובץ גודל קובץ תאריך וכו' כל המידע על כל הקבצים בתייקיה
התוצאה:
בין רגע יש לי קובץ גיבוי למחשב שאומר לי מה בדיוק היה איפה והוא שוקל כמה מ"ב במקרה הטוב..
שימושים:
1 הורדתי למחשב פלילסיט יפה שבניתי ביוטיוב. אני מעוניין לשלוח לחבר את רשימת השירים לא ע"י צילומי מסך וגם אין לי שום עניין לשלוח לו את קבצי השירים עצמם כי הם ניתנים להשגה ביוטיוב - הסקריפםט יעזור.
2 אני לחוץ להתקין ווינדוס על המחשב אבל אני חייב קובץ גיבוי שיתן לי מידע כללי על המחשב כדי שאם אכן משהו חשוב נאבד אדע מהיכן לשחזר
3 אני מטפל במחשב ישן או כונן שנמצא ואני רוצה לשלוח לבעל הכלי אחסון הזה את הקבצים שיאמר לי אם זה שלו והאם אפשר למחוק - ואני עושה צילומי מסך על תיקיות רנדולמליות - במקום למסור לו עץ מסודר של הכל ומיד הוא יזהה..תודה לעוזרים!
-
@אברהם-גלסר
תודה! (תודה גם לקודמיך , פשוט כבר ניסיתי את שלך והספיק לי..)עשיתי 2 שיפורים:
א. להוסיף לסקריפט שבפרטי הקבצים יהיה עוד כמה שדות תלוי לפי סוג הקובץ:
אודיו: משך (אורך), אמן, אלבום, ז'אנר, שם השיר, שנה, קצב נתונים (Bitrate).
וידאו: משך, רזולוציה/מידות, קצב פריימים (FPS), קצב נתונים.
מסמכים: כותרת, מחבר, כמות עמודים, כמות מילים.
תוכנות (.exe/.dll): תיאור הקובץ, גרסת קובץ, יצרן/חברה, שם מוצר.
תמונות: רזולוציה, תאריך צילום, דגם מצלמה.
ב. כל קובץ יוצג לפרטיו ואחריו הקובץ הבא לפרטיו ולא כמו כרגע שזה טבלה כי בTXT טבלה זה יוצא לא יפה וסתם שורות ארוכותמדריך מלא:
הסבר שימוש:
א. מורידים הסקריפט:
הסקריפט העדכני:
FolderTreeBackup.ps1 (פתח בכרטיסייה חדשה ע"מ להוריד)
ב. מסדרים את הפקודה לפי הנתיבים שלכם[הפקודה נמצאית באות ג']:
בעצם הנתיב הראשון זה היכן הסקריפט ממוקם
השני זה על מה להפעיל את הסקריפט
השלישי זה היכן למקם את הפלט היוצא מן הסקריפט
ג. פותחים פאוור של כמנהל סתם רגיל(לא בתוך תייקיה או משהו)
ומדביקים בפאוור של את זה:powershell -ExecutionPolicy Bypass -File "C:\Users\kiosk\Downloads\FolderTreeBackup.ps1" -Source "D:\שירים" -Destination "C:\Users\kiosk\Downloads\Backup_Songs_Tree"ד. ממתינים להודעת סיום:
תוצאת הצלחה נראית כך בפאוור של:Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> powershell -ExecutionPolicy Bypass -File "C:\Users\kiosk\Downloads\FolderTreeBackup.ps1" -Source "D:\שירים" -Destination "C:\Users\kiosk\Downloads\Backup_Songs_Tree" Done (Fast & Targeted)! PS C:\WINDOWS\system32>ה. תוצאה בפועל[בסייר קבצים]:
תייקיה במקור:

[ועל זה כזה דבר לקח כדקה וחצי לסקריפט לפעול]
תייקית פלט:

ו. נוצרים בתיקייה 3 קבצים:
- בכל תיקייה נוצר קובץ בשם __CONTENTS.txt. (פרטי כל קובץ וקובץ בתוך התיקיה. מה כלול בפרטי הקובץ: כמה שדות תלוי לפי סוג הקובץ:
אודיו: משך (אורך), אמן, אלבום, ז'אנר, שם השיר, שנה, קצב נתונים (Bitrate).
וידאו: משך, רזולוציה/מידות, קצב פריימים (FPS), קצב נתונים.
מסמכים: כותרת, מחבר, כמות עמודים, כמות מילים.
תוכנות (.exe/.dll): תיאור הקובץ, גרסת קובץ, יצרן/חברה, שם מוצר.
תמונות: רזולוציה, תאריך צילום, דגם מצלמה.)
בתייקיה הכללית נוצר קובץ- __SUMMARY.txt - סיכום כללי של יצירת הפלט הזו.
בתייקיה הכללית נוצר קובץ- __SCAN_LOG.txt - שגיאות והרשאות שלא ניתן היה לקרוא.
כל המדריך הזה לתוך קובץ README.txt:
README.txt - בכל תיקייה נוצר קובץ בשם __CONTENTS.txt. (פרטי כל קובץ וקובץ בתוך התיקיה. מה כלול בפרטי הקובץ: כמה שדות תלוי לפי סוג הקובץ:
-
ה הנני העני סימן נושא זה כנפתר
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות