Untitled

 avatar
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...