Untitled
unknown
plain_text
5 months ago
2.2 kB
2
Indexable
# Định nghĩa đường dẫn file output $outputFile = "C:/fun/changes_output.txt" # Kiểm tra và tạo thư mục nếu chưa tồn tại if (-not (Test-Path -Path "C:/fun")) { New-Item -ItemType Directory -Path "C:/fun" | Out-Null } # Xóa file output cũ nếu đã tồn tại if (Test-Path $outputFile) { Remove-Item $outputFile } # Lấy danh sách các file đã thay đổi $files = git diff --name-only # Kiểm tra xem có file nào thay đổi không if ($files.Count -eq 0) { Write-Host "Không có thay đổi nào để xuất." exit } # Lặp qua từng file và thêm nội dung thay đổi vào file output foreach ($file in $files) { Add-Content -Path $outputFile -Value "File: $file" Add-Content -Path $outputFile -Value "------------------" # Lấy nội dung diff với không có dòng context $diffContent = git diff --unified=0 $file # Lọc chỉ các dòng hunk header và các dòng bắt đầu bằng một dấu + hoặc - $filteredChanges = $diffContent | Where-Object { $_ -match '^@@' -or $_ -match '^[+-](?![+-]).*' } # Kiểm tra nếu có thay đổi if ($filteredChanges) { foreach ($line in $filteredChanges) { if ($line -match '^@@') { # Ghi lại dòng hunk header Add-Content -Path $outputFile -Value $line } elseif ($line -match '^\+') { # Ghi lại dòng thêm, loại bỏ dấu + và khoảng trắng $cleanLine = $line -replace '^\+\s*', '' Add-Content -Path $outputFile -Value "Added: $cleanLine" } elseif ($line -match '^-') { # Ghi lại dòng xóa, loại bỏ dấu - và khoảng trắng $cleanLine = $line -replace '^\-\s*', '' Add-Content -Path $outputFile -Value "Removed: $cleanLine" } } } else { Add-Content -Path $outputFile -Value "Không có dòng thêm/xóa cụ thể." } Add-Content -Path $outputFile -Value "" # Thêm dòng trống giữa các file } Write-Host "Các thay đổi đã được xuất vào $outputFile"
Editor is loading...