IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Modif chaine de caractères dans un script Powershell


Sujet :

Windows

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 8
    Par défaut Modif chaine de caractères dans un script Powershell
    Bonjour,
    Une question j'essaie de modifier dans différents fichiers la chaine de caractère ${userAppDir} ou ${sys:userAppDir} par D:\APPLI\NEOLOAD mais j'ai un petit souci.
    En effet,le remplacement se fait bien mais dans tout le fichier apparaît D:\APPLI\NEOLOAD ce qui est un peu gênant.
    Auriez vous une idée de ce que j'ai pu oublier ?

    Voici mon script :
    $installdir= "D:\APPLI\NEOLOAD"
    $aremplacer= "${userAppDir}"
    $aremplacer2= "${sys:userAppDir}"

    # Changement dossier des logs dans le fichier logs.xconfig et log4j.xml
    (Get-Content -Path $installdir\conf\logs.xconfig) | foreach { $_ -replace $aremplacer, $installdir } | Set-Content -Path $installdir\conf\logs.xconfig
    (Get-Content -Path $installdir\conf\log4j.xml) | foreach { $_ -replace $aremplacer2, $installdir } | Set-Content -Path $installdir\conf\log4j.xml
    (Get-Content -Path $installdir\conf\agentlog4j.xml) | foreach { $_ -replace $aremplacer2, $installdir } | Set-Content -Path $installdir\conf\agentlog4j.xml
    (Get-Content -Path $installdir\conf\lglog4j.xml) | foreach { $_ -replace $aremplacer2, $installdir } | Set-Content -Path $installdir\conf\lglog4j.xml
    (Get-Content -Path $installdir\conf\melog4j.xml) | foreach { $_ -replace $aremplacer2, $installdir } | Set-Content -Path $installdir\conf\melog4j.xml

    Vu dans le fichier :
    D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD<D:\APPLI\NEOLOAD/D:\APPLI\NEOLOADRD:\APPLI\NEOLOADoD:\APPLI\
    NEOLOADoD:\APPLI\NEOLOADtD:\APPLI\NEOLOAD>D:\APPLI\NEOLOAD
    D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD D:\APPLI\NEOLOAD<D:\APPLI\NEOLOAD/D:\APPLI\NEOLOADLD:\APPLI\NEOLOADoD:\APPLI\NEOLOADgD:\APPLI\NEOLOADgD:\APPLI\NEOLOADeD:\APPLI\NEOLOADrD:\APPLI\
    NEOLOADsD:\APPLI\NEOLOAD>D:\APPLI\NEOLOAD
    D:\APPLI\NEOLOAD<D:\APPLI\NEOLOAD/D:\APPLI\NEOLOADCD:\APPLI\NEOLOADoD:\APPLI\NEOLOADnD:\APPLI\NEOLOADfD:\APPLI\NEOLOADiD:\APPLI\NEOLOADgD:\APPLI\NEOLOADuD:\APPLI\NEOLOADrD:\APPLI\NEOLOADaD:\APPLI\NEOLOADtD:\APPLI\
    NEOLOADiD:\APPLI\NEOLOADoD:\APPLI\NEOLOADnD:\APPLI\NEOLOAD>D:\APPLI\NEOLOAD

    Merci d'avance,

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 67
    Par défaut
    Salut essaie ça !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $installdir = "D:\APPLI\NEOLOAD"
    $aremplacer = "${userAppDir}"
    $aremplacer2 = "${sys:userAppDir}"
    
    # Fonction de remplacement pour éviter de remplacer plusieurs fois la même ligne
    function Replace-Text ($Path, $Pattern, $Replacement) {
        (Get-Content $Path) | ForEach-Object { 
            if ($_ -match $Pattern) {
                $_ -replace $Pattern, $Replacement
            } else {
                $_
            }
        } | Set-Content $Path
    }
    
    # Remplacement de la chaîne de caractères dans chaque fichier
    Get-ChildItem -Path $installdir\conf -Filter "*.xml" | ForEach-Object {
        $FilePath = $_.FullName
        Replace-Text -Path $FilePath -Pattern $aremplacer -Replacement $installdir
        Replace-Text -Path $FilePath -Pattern $aremplacer2 -Replacement $installdir
    }
    Get-ChildItem -Path $installdir\conf -Filter "*.xconfig" | ForEach-Object {
        $FilePath = $_.FullName
        Replace-Text -Path $FilePath -Pattern $aremplacer -Replacement $installdir
    }

Discussions similaires

  1. Modification d'une chaine de caractères dans un .reg
    Par damiensimon28 dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 30/12/2021, 15h21
  2. Réponses: 0
    Dernier message: 09/11/2018, 10h16
  3. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51
  4. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35
  5. chaines de caractères dans fichier .rc ou .res
    Par raggadoll dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/03/2004, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo