1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| $FichierA = "inputLine.txt"
$FichierB = "inputData.txt"
# Compte le nombre de ligne de $FichierA
$CountLine = (Get-Content -Path $FichierA | Where-Object {$_ -ne ""}).Count
# Questionne sur les remplacements à effectuer
# Tableau qui va nous servir à stocker les remplacements
$replacements = @()
# Boucle infini
while($true)
{
$find = read-host -Prompt "Texte à chercher (vide pour passer)"
# Si entré vide on quitte la boucle
if ($find -eq "")
{
break
}
$replace = read-host -Prompt "Texte à remplacer (vide pour passer)"
# Si entré vide on quitte la boucle
if ($replace -eq "")
{
break
}
# On stock dans notre tableau les remplacements
$replacements += , @($find, $replace)
Write-Host ""
}
# Lit le contenu de $FichierB
$content = Get-Content -Path $FichierB
# Effectue les remplacements nécessaire
foreach($replacement in $replacements)
{
$content = $content -replace $replacement[0], $replacement[1]
}
# Effectue les sauvegardes
$destination = ".\Sauvegardes\$env:UserName"
$filename = (Get-Item -Path $FichierB).PSChildName
# Autant de fois qu'il y a de ligne non vide dans $FichierA
For ($i = 1; $i -le $CountLine; $i++)
{
# Créer le dossier de destination si il n'existe pas
if (-not (Test-Path -Path "$destination\Sauvegarde$i" -PathType Container))
{
new-Item -ItemType directory -Path "$destination\Sauvegarde$i" | Out-Null
}
# Créer le fichier modifié
Set-Content -Path "$destination\Sauvegarde$i\$filename" -Value $content
} |
Partager