<# | |
.SYNOPSIS | |
Formats JSON files from single-line to multi-line format using the jq command-line JSON processor. | |
.DESCRIPTION | |
The Format-JSONFiles function formats JSON files found in a specified directory using the jq command-line JSON processor. | |
It loops through each JSON file in the directory, applies jq formatting, and overwrites the original file with the formatted JSON. | |
.PARAMETER DirectoryPath | |
Specifies the directory path where the JSON files are located. Default value is "C:\Users\kade\Desktop\yiff_toolkit\ponyxl_loras". | |
.EXAMPLE | |
Format-JSONFiles -DirectoryPath "C:\path\to\json_files" | |
Formats all JSON files in the "C:\path\to\json_files" directory. | |
.NOTES | |
Author: _ka_de | |
Date: 2024-04-20 | |
Version: 1.0 | |
#> | |
function Format-JSONFiles { | |
param ( | |
[string]$DirectoryPath = "C:\Users\kade\Desktop\yiff_toolkit\ponyxl_loras" | |
) | |
# Get a list of all JSON files in the specified directory | |
$jsonFiles = Get-ChildItem -Path $DirectoryPath -Filter "*.json" | |
# Loop through each JSON file and format it using jq | |
foreach ($file in $jsonFiles) { | |
# Construct the command to format the JSON file from single-line to multi-line | |
$command = "jq '.' '$($file.FullName)' > temp.json" | |
# Execute the command | |
Invoke-Expression -Command $command | |
# Overwrite the original file with the formatted content | |
Move-Item -Path "temp.json" -Destination $file.FullName -Force | |
Write-Host "Formatted $($file.Name) successfully." | |
} | |
} | |