@איש-אמת כתב בבקשה | דרוש סקריפט שמעתיק קוד לקובץ:
@הישבשר-המלומד
״בדרך שאדם רוצה לילך...״
שים לב! נכנב על ידי ai ולא נוסה, (יש לי mac)
Spoiler
# הגדרת קידוד UTF8 כדי לתמוך בעברית ובתווים מיוחדים
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# קבלת הנתיב הנוכחי (התיקייה בה מופעל הסקריפט)
$CurrentPath = Get-Location
Write-Host "סורק קבצים בתיקייה: $CurrentPath" -ForegroundColor Cyan
# איסוף כל הקבצים בתיקייה ובתתי-התיקיות (רקורסיבי)
$AllFiles = Get-ChildItem -Path $CurrentPath -Recurse -File
# בדיקה אם נמצאו קבצים
if (-not $AllFiles) {
Write-Host "לא נמצאו קבצים בתיקייה זו." -ForegroundColor Red
exit
}
# פתיחת חלון לבחירת הקבצים
# Out-GridView מאפשר בחירה גרפית נוחה
$SelectedFiles = $AllFiles | Select-Object Name, Directory, Length, LastWriteTime | Out-GridView -Title "בחר את הקבצים שברצונך להעתיק (השתמש ב-CTRL לבחירה מרובה)" -PassThru
# אם לא נבחרו קבצים, צא
if (-not $SelectedFiles) {
Write-Host "לא נבחרו קבצים. הפעולה בוטלה." -ForegroundColor Yellow
exit
}
# שם קובץ הפלט
$OutputFileName = "Merged_Project_Code.txt"
$OutputPath = Join-Path -Path $CurrentPath -ChildPath $OutputFileName
# אתחול משתנה לתוכן הסופי
$FinalContent = @()
foreach ($fileItem in $SelectedFiles) {
# הרכבת הנתיב המלא
$FullPath = Join-Path -Path $fileItem.Directory -ChildPath $fileItem.Name
# יצירת כותרת ברורה לכל קובץ
$Header = @"
==============================================================================
FILE NAME: $($fileItem.Name)
PATH: $FullPath
==============================================================================
"@
# קריאת תוכן הקובץ
# -Raw מבטיח שכל הקובץ ייקרא כמחרוזת אחת כולל ירידות שורה (שומר על פורמט קוד)
try {
$Content = Get-Content -Path $FullPath -Raw -ErrorAction Stop
}
catch {
$Content = "שגיאה בקריאת הקובץ (ייתכן שזהו קובץ בינארי או שהוא בשימוש): $($_.Exception.Message)"
}
# הוספה לרשימת התוכן הסופי
$FinalContent += $Header
$FinalContent += $Content
$FinalContent += "`n`n" # הוספת רווח כפול בין קובץ לקובץ
}
# שמירת הקובץ החדש בקידוד UTF8
$FinalContent | Set-Content -Path $OutputPath -Encoding UTF8
Write-Host "התהליך הסתיים בהצלחה!" -ForegroundColor Green
Write-Host "הקובץ נוצר בנתיב: $OutputPath" -ForegroundColor Green
# פתיחה אוטומטית של הקובץ שנוצר
Invoke-Item $OutputPath
איך להשתמש בסקריפט:
יצירת הקובץ:
פתח את "פנקס הרשימות" (Notepad) או כל עורך קוד אחר.
העתק את הקוד שלמעלה והדבק אותו.
שמור את הקובץ בשם MergeFiles.ps1 (הסיומת .ps1 חשובה) בתוך התיקייה הראשית של הפרויקט שלך.
הפעלה:
לחץ קליק ימני על הקובץ שיצרת (MergeFiles.ps1).
בחר באפשרות Run with PowerShell.
תהליך העבודה:
ייפתח חלון רשימה המציג את כל הקבצים.
בחר את הקבצים הרצויים (החזק מקש Ctrl לחוץ כדי לסמן קבצים בודדים, או Shift כדי לסמן רצף).
לחץ על כפתור OK בצד ימין למטה של החלון.
הסקריפט ייצור קובץ בשם Merged_Project_Code.txt באותה תיקייה ויפתח אותו אוטומטית.
למה הסקריפט עונה על הדרישות שלך?
אינטראקטיבי: משתמש ב-Out-GridView כדי לתת לך ממשק גרפי נוח לבחירה מתוך רשימה.
פורמט קוד: הפקודה Get-Content -Raw שומרת בדיוק על המבנה המקורי (טאבים, רווחים, ירידות שורה), כך שהקוד לא הופך ל"סתם מלל רציף".
תמיכה בעברית: הוספתי הגדרות UTF8 כדי שאם יש לך הערות בעברית בקוד, הן לא יהפכו לסימני שאלה.
כותרות: לפני כל תוכן של קובץ מופיע בלוק ברור עם שם הקובץ והנתיב שלו.
חיכתי לאחד מוכשר כמוך