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 :

Conditions sous Powershell [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Décembre 2018
    Messages : 48
    Points : 40
    Points
    40
    Par défaut Conditions sous Powershell
    Bonjour à tous,

    J'ai un script powershell qui télécharge des fichiers d'installation de logiciels et qui les enregistre dans un dossier spécifique. (Invoke-WebRequest -Uri)
    J'ai tenté de mettre en place une condition dans le script (if (!(Test-Path "$Dir\NotePad.exe")) qui fait que si le fichier d'installation n'est pas présent dans le dossier le fichier est bien téléchargé.
    En revanche, si le fichier est bien présent, je souhaite que le script passe à l'étape suivante (lancement d'un .bat)
    Je galère avec les conditions sous powershell.
    Pourriez-vous éclairer ma lanterne ?
    Ci dessous, le code Powershell :
    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
    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
    64
    65
    66
    67
    68
    69
    70
    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
    # Download Soft
    $Dir="C:\users\$env:username\Desktop\TEMP"
    # Télécahrgement 7Zip
    Clear-Host
    if (!(Test-Path "$Dir\7Z.msi"))
    {
    	Write-Output "###########################"
    	Write-Output "#~~ TELECHARGEMENT 7ZIP ~~#"
    	Write-Output "###########################"
    		Invoke-WebRequest -Uri "https://www.7-zip.org/a/7z1900-x64.msi" -OutFile "$Dir\7Z.msi"
    }
    # Téléchargement Ccleaner
    Clear-Host
    if (!(Test-Path "$Dir\Ccleaner.exe"))
    {
    	Write-Output "###############################"
    	Write-Output "#~~ TELECHARGEMENT CCLEANER ~~#"
    	Write-Output "###############################"
    		Invoke-WebRequest -Uri "https://download.ccleaner.com/ccsetup566.exe" -OutFile "$Dir\Ccleaner.exe"
    }
    # Téléchargement EdgeChromium
    Clear-Host
    if (!(Test-Path "$Dir\EdgeChromium.msi"))
    {
    	Write-Output "####################################"
    	Write-Output "#~~ TELECHARGEMENT EDGE CHROMIUM ~~#"
    	Write-Output "####################################"
    		Invoke-WebRequest -Uri "http://dl.delivery.mp.microsoft.com/filestreamingservice/files/0a781574-de1b-431e-87a3-ed7d0f66393b/MicrosoftEdgeEnterpriseX64.msi" -OutFile "$Dir\EdgeChromium.msi"
    }
    # Téléchargement Firefox
    Clear-Host
    if (!(Test-Path "$Dir\Firefox.exe"))
    {
    	Write-Output "######################################"
    	Write-Output "#~~ TELECHARGEMENT MOZILLA FIREFOX ~~#"
    	Write-Output "######################################"
    		Invoke-WebRequest -Uri "https://download.mozilla.org/?product=firefox-latest-ssl&os=win64&lang=fr" -OutFile "$Dir\Firefox.exe"
    		}
    # Téléchargement Java
    Clear-Host
    if (!(Test-Path "$Dir\Java.exe"))
    {
    	Write-Output "###########################"
    	Write-Output "#~~ TELECHARGEMENT JAVA ~~#"
    	Write-Output "###########################"
    		Invoke-WebRequest -Uri "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=242060_3d5a2bb8f8d4428bbe94aed7ec7ae784" -OutFile "$Dir\Java.exe"
    }
    # Téléchargement NotePad++
    Clear-Host
    if (!(Test-Path "$Dir\NotePad.exe"))
    {
    	Write-Output "################################"
    	Write-Output "#~~ TELECHARGEMENT NOTEPAD++ ~~#"
    	Write-Output "################################"
    		Invoke-WebRequest -Uri "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v7.8.6/npp.7.8.6.Installer.x64.exe" -OutFile "$Dir\NotePad.exe"
    }
    # Téléchargement VLC
    Clear-Host
    if (!(Test-Path "$Dir\VLC.exe"))
    {
    	Write-Output "##########################"
    	Write-Output "#~~ TELECHARGEMENT VLC ~~#"
    	Write-Output "##########################"
    		Invoke-WebRequest -Uri "https://mirror.cyberbits.eu/videolan/vlc/3.0.10/win64/vlc-3.0.10-win64.exe" -OutFile "$Dir\VLC.exe"
    }
    if (Test-Path "$Dir\7Z.msi")
    {
    	Start-Process C:\Users\$env:username\Desktop\Test.bat
    }

    Merci d'avance pour votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Décembre 2018
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    J'ai fait un test avec ça :
    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
    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
    # Download Soft
    $Dir="C:\Users\$env:username\Documents\KEEP\TEMP"
    if (Test-Path "$Dir\7Z.msi")
    {
    	Start-Process C:\Users\$env:username\Documents\KEEP\PrepaPC\Start.bat
    }
    # Téléchargement 7Zip
    Clear-Host
    if (!(Test-Path "$Dir\7Z.msi"))
    {
    	Write-Output "###########################"
    	Write-Output "#~~ TELECHARGEMENT 7ZIP ~~#"
    	Write-Output "###########################"
    		Invoke-WebRequest -Uri "https://www.7-zip.org/a/7z1900-x64.msi" -OutFile "$Dir\7Z.msi"
    }
    pause

    Cela fonctionne, mais dès que j'ajoute d'autres "If" cela ne fonctionne plus car à chaque "If" il attend une fonction à réaliser.
    Je ne vois pas comment faire...

    Merci d'avance.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Et si le fichier d'installation n'est pas présent dans le dossier et que tu le télécharge tu souhaite qu'il lance le batch ?

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Décembre 2018
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    Salut ericlm128,

    Oui effectivement.
    Dans cet exemple, je n'ai pas ajouté la ligne qui lance le batch après le téléchargement.
    Dans Start.bat, j'ai :
    Code batch : 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    @echo off
    cls
    color F
    setlocal ENABLEDELAYEDEXPANSION
    set chemin1=C:\Users\%username%\desktop\PrepaPC\
    set chemin2=C:\Users\%username%\desktop\PrepaPC\Menus\
    set chemin3=C:\Users\%username%\Desktop\PrepaPC\Soft
    set chemin4=C:\Users\%username%\Desktop\PrepaPC\Soft\Powershell
    powershell Set-ExecutionPolicy Unrestricted -Force
    	powershell -file %chemin4%\DLSOFT.ps1
    cls
    REM Initialize
    for /L %%I in (1,1,2) do set ITEM%%I=[ ]
     
    :Boucle
    cls
    echo ##############################
    echo #~~ CONFIGURATION DE POSTE ~~#
    echo ##############################
    echo.
    echo Choisissez la marque de votre PC :
    echo.
    echo %ITEM1% 01. LENOVO
    echo %ITEM2% 02. PC
    echo.
    echo Taper "Q" pour Quitter
    echo Taper "1" ou "2" pour faire votre choix et appuyer sur "ENTER"
    echo Taper "R" pour valider votre choix et appuyer sur "ENTER"
    echo Taper "X" pour afficher le fichier de note de versions
     
    set WhichItem=
    set /P WhichItem=Faites votre choix et appuyer sur "ENTER" : 
     
    if not defined WhichItem goto Boucle
    if /I "%WhichItem%"=="Q" goto exit
    if /I "%WhichItem%"=="R" goto RunOptions
    if /I "%WhichItem%"=="X" goto item3
     
    set /A WhichItem=%WhichItem%
     
    for /L %%I in (1,1,2) do if "%%I"=="%WhichItem%" (
    	if "!Item%WhichItem%!"=="[X]" (
    		set Item%WhichItem%=[ ]
    	) else (
    		set Item%WhichItem%=[X]
    	)
    )
    goto Boucle
     
    :RunOptions
    for /L %%I in (1,1,2) do if "!Item%%I!"=="[X]" call :Item%%I
    pause
    goto :EOF
     
    :item1
    cls
    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    color F
    for /L %%I in (1,1,5) do set ITEM%%I=[ ]
     
    if not exist "C:\Program Files (x86)\Lenovo" goto item1
    if exist "C:\Program Files (x86)\Lenovo" goto item2
     
    :item1
    REM Installation Lenovo System Update
    @echo off
    color F
    echo ################################################
    echo #~~ INSTALLATION LENOVO-SYSTEM-UPDATE 5.0796 ~~#
    echo ################################################
     	start /w %chemin3%\Lenovo\LSU50796.exe /verysilent /norestart
    call %chemin2%#StartPC#.bat
    exit
     
    :item2
    call %chemin2%#StartPC#.bat
    exit
     
    :item3
    REM Note de versions
    start notepad %chemin1%Version.txt
    exit
     
    :exit
    exit

    Comme tu peux le voir le batch lance le script powershell de téléchargement de fichier.
    Ce que j'aimerais dans le script powershell :
    - présence ou non du fichier d'installation
    - si fichiers présents => on retourne sur le batch Start.bat
    - si fichiers non présents => téléchargement des fichiers et ensuite on retourne dans Start.bat

    Je me complique peut-être la vie...

    Merci pour ton aide.

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Donc je comprend que c'est la batch qui lance le Powershell. Pour retourner dans le batch tu n'a qu'a quitter le script Powershell

    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
    $Dir="C:\Users\$env:username\Documents\KEEP\TEMP"
     
    if (!(Test-Path "$Dir\7Z.msi"))
    {
    	Write-Output "###########################"
    	Write-Output "#~~ TELECHARGEMENT 7ZIP ~~#"
    	Write-Output "###########################"
    	Invoke-WebRequest -Uri "https://www.7-zip.org/a/7z1900-x64.msi" -OutFile "$Dir\7Z.msi"
    }
     
    if (!(Test-Path "$Dir\Ccleaner.exe"))
    {
    	Write-Output "###############################"
    	Write-Output "#~~ TELECHARGEMENT CCLEANER ~~#"
    	Write-Output "###############################"
    	Invoke-WebRequest -Uri "https://download.ccleaner.com/ccsetup566.exe" -OutFile "$Dir\Ccleaner.exe"
    }
     
    exit

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Décembre 2018
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    Salut ercilm128,

    Merci!
    Je débloque en fait.
    Je me suis pris la tête pour pas grand chose!

    A bientôt

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

Discussions similaires

  1. comptages avec 2 conditions sous excel
    Par cpe81 dans le forum Excel
    Réponses: 8
    Dernier message: 11/12/2008, 13h45
  2. Remplir une cellule Excel avec une condition sous vb
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/01/2008, 13h47
  3. [Calculs VBA] Test de condition sous VBA
    Par guen dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/11/2007, 17h52
  4. [Excel VBA] Faire une condition sous Excel
    Par ANTMA dans le forum Excel
    Réponses: 3
    Dernier message: 03/08/2007, 11h20
  5. Problème avec les conditions ''sous-ensemble d'un tableau''
    Par djangossoul dans le forum LabVIEW
    Réponses: 2
    Dernier message: 07/06/2007, 12h23

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