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

Scripts/Batch Discussion :

Retranscrire fichier BAT au format PowerShell [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Monteur Vidéo...
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Monteur Vidéo...

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut Retranscrire fichier BAT au format PowerShell
    Bonjour,

    Je me prends la tête et je n'arrive pas à trouver comment faire (Retranscrire) ce BAT en PowerShell ?!

    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
    echo.
    @ping 127.0.0.1 -n 2 > NUL
    if not exist "%ProgramW6432%\dossier\monprog.exe" (goto :1) else (goto :2)
    :1
    echo Déjà renommé
    goto FIN
    :2
    if exist "%ProgramW6432%\dossier\monprog.exe.BAK" (goto :3) else (goto :4)
    :3
    ::echo Renomme le fichier
    Del "%ProgramW6432%\dossier\monprog.exe.BAK" /f /s /q >nul 2>&1
    @ping 127.0.0.1 -n 2 > NUL
    :4
    echo Renomme le fichier
    ren "%%ProgramW6432%\dossier\monprog.exe.BAK" >nul 2>&1
    @ping 127.0.0.1 -n 2 > NUL
    echo.
    echo OK
    :FIN
    @ping 127.0.0.1 -n 5 > NUL
    Exit

    Ou quelque chose de similaire en PowerShell


    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut
    salut !

    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
    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
    
    # Ajoute une pause
    Write-Host ""
    
    # Ping local pour temporisation
    Test-Connection -ComputerName 127.0.0.1 -Count 2 -Quiet | Out-Null
    
    # Vérifie si le programme existe
    if (Test-Path "$env:ProgramW6432\dossier\monprog.exe") {
        # Si le fichier existe, va à la section :2
        goto :label2
    } else {
        # Si le fichier n'existe pas, va à la section :1
        goto :label1
    }
    
    :label1
    Write-Host "Déjà renommé"
    goto :fin
    
    :label2
    # Vérifie si le fichier .BAK existe
    if (Test-Path "$env:ProgramW6432\dossier\monprog.exe.BAK") {
        # Si le fichier .BAK existe, va à la section :3
        goto :label3
    } else {
        # Si le fichier .BAK n'existe pas, va à la section :4
        goto :label4
    }
    
    :label3
    # Supprime le fichier .BAK
    Remove-Item "$env:ProgramW6432\dossier\monprog.exe.BAK" -Force -Recurse -ErrorAction SilentlyContinue
    Test-Connection -ComputerName 127.0.0.1 -Count 2 -Quiet | Out-Null
    
    :label4
    # Renomme le fichier .BAK
    Rename-Item "$env:ProgramW6432\dossier\monprog.exe.BAK" -NewName "monprog.exe.BAK" -ErrorAction SilentlyContinue
    Test-Connection -ComputerName 127.0.0.1 -Count 2 -Quiet | Out-Null
    
    Write-Host ""
    Write-Host "OK"
    
    :fin
    # Attend 5 secondes avant de quitter
    Test-Connection -ComputerName 127.0.0.1 -Count 5 -Quiet | Out-Null
    
    # Quitte le script
    Exit
    Explication des changements :
    Ping : Utilisation de Test-Connection pour simuler un délai comme le fait la commande ping en BAT.
    Test-Path : Remplace les conditions if not exist et if exist pour tester la présence de fichiers.
    Rename-Item / Remove-Item : Remplace les commandes ren et del pour renommer et supprimer des fichiers.
    Goto : Bien que PowerShell n'utilise pas goto de la même manière que BAT, le script utilise des labels pour imiter cette logique.
    Note : Le script PowerShell n’a pas le même flux de contrôle exact, mais il garde la même logique et les mêmes actions.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Une autre proposition mon spaghetti
    Code powershell : 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
    Start-Sleep -Seconds 2
     
    if (!(Test-Path -LiteralPath "${env:ProgramW6432}\dossier\monprog.exe"))
    {
        Write-Host "Déjà renommé"
        return
    }
    else
    {
        if (Test-Path -LiteralPath "${env:ProgramW6432}\dossier\monprog.BAK")
        {
            Write-Host "Supprime le fichier"
            Remove-Item -LiteralPath "${env:ProgramW6432}\dossier\monprog.BAK" -Force
            Start-Sleep -Seconds 2
        }
     
        Write-Host "Renomme le fichier"
        Rename-Item -LiteralPath "${env:ProgramW6432}\dossier\monprog.exe" -NewName "monprog.BAK"
        Start-Sleep -Seconds 2
     
    }
     
    Write-Host "OK"
    Start-Sleep -Seconds 5
    exit

  4. #4
    Membre averti
    Homme Profil pro
    Monteur Vidéo...
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Monteur Vidéo...

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut
    Salut,

    Merci à vous deux
    ça fonctionne

    Encore Merci

    @+

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Salut,
    Passe en résolu si OK

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Retranscrire un fichier bat pour modification manuelle !
    Par cincap dans le forum Windows 10
    Réponses: 4
    Dernier message: 20/09/2018, 01h38
  2. Imprimer automatiquement fichiers de plusieurs formats
    Par lutin511 dans le forum Windows
    Réponses: 5
    Dernier message: 07/12/2005, 18h38
  3. Comment écrire un fichier texte au format MS-DOS ?
    Par fredfred dans le forum Langage
    Réponses: 9
    Dernier message: 20/01/2005, 09h00
  4. [BAT] commande AT pour exécuter fichier .bat
    Par PatLogan dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 04/01/2005, 16h51
  5. Fichier bat + FTP + passage parametres
    Par Leti dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 13/12/2004, 18h21

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