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 :

modifier "script" powershell


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    responsable d'équipe
    Inscrit en
    Avril 2014
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : responsable d'équipe
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 212
    Points : 0
    Points
    0
    Par défaut modifier "script" powershell
    bonjour
    je souhaite modifier les commandes d'un script PowerShell

    j'ai récupéré le fichier de commande, qui lit avec vlc, toutes les vidéos d'un répertoire

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #Emplacement vidéos utilisateur serveur
    $EMP_util = "\\LIV-FS06\Raspberry_Affichage\Labo\video\"
    $EMP_util_recur = $EMP_util + "*"
     
    #Emplacement vidéos lecture
    $EMP_lecture = "C:\Liste_lecture\"
    $EMP_lecture_recur = $EMP_lecture + "*"
     
    #Emplacement VLC
    $EMP_VLC32 = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
    $EMP_VLC64 = "C:\Program Files\VideoLAN\VLC\vlc.exe"
     
    #Si le dossier de lecture n'existe pas, le créer
    if(!(Test-Path $EMP_lecture -PathType Container)) 
    { 
        New-Item -Path "C:\" -Name "Liste_lecture" -ItemType "directory"
    }
     
    #Si le dossier de lecture est vide, importer les vidéos dessus
    if( (Get-ChildItem $EMP_lecture | Measure-Object).Count -eq 0)
    {
     Copy-Item $EMP_util_recur -Destination $EMP_lecture -Recurse
    }
     
    #Si le dossier VLC (x86) existe, alors l'emplacement est en 32
    if(Test-Path $EMP_VLC32)
    { 
        $EMP_VLC_local = $EMP_VLC32
    }
     
    #Sinon, l'emplacement de VLC est en 64
    else
    {
        $EMP_VLC_local = $EMP_VLC64
    }
     
    #Si le dossier VLC existe bien
    if (Test-Path $EMP_VLC_local)
    {
        #Lancer la lecture VLC dans l'emplacement de lecture, pas de nouvelle fenêtre
        Start-Process $EMP_VLC_local $EMP_lecture -NoNewWindow
     
        while ($true)
        {
            #Ping 8.8.8.8
            $TestConnect = Test-Connection 8.8.8.8 -Quiet
     
            #Si le ping est réussi,
            if ($TestConnect -eq "True")
            {
                #Récupérer les informations sur les dossiers de lecture et utilisateur
                $Videos_serveur = Get-ChildItem -Path $EMP_util | Where-Object {$_.extension  -in '.mp4','.wmv' ,'.avi' }
                $Videos_locales = Get-ChildItem -Path $EMP_lecture
     
                #Si les noms de vidéos locales ne sont pas les mêmes que les noms sur le serveur
                if (Compare-Object $Videos_locales.Name $Videos_serveur.Name)
                {
                    #Arrêter VLC, attendre 5 secondes, supprimer les vidéos locales, importer celles du serveur, attendre 5 secondes et relancer VLC
                    Stop-Process -Name "vlc" -Force
                    Start-Sleep -s 5
                    Remove-Item -Path $EMP_lecture_recur -Recurse
                    Copy-Item $EMP_util_recur -Destination $EMP_lecture -Recurse
                    Start-Sleep -s 5
                    Start-Process $EMP_VLC_local $EMP_lecture -NoNewWindow
                }
            }
     
            #S'il est exactement 23h59,
            if((Get-Date).Hour -eq "23" -and (Get-Date).Minute -eq "59")
            {
                #Redémarrer le PC
                Restart-Computer -Force
            }
        }
    }
    else
    {
        [System.Windows.Forms.MessageBox]::Show("Répertoire VLC non déterminé. Impossible de lancer l'affichage vidéo.","Erreur",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Warning)
    }
    je souhaiterais, le modifier pour qu'il lise:
    - les vidéos dans un répertoire x de 7 h00 à 18 h
    - des vidéos dans un autre répertoire en dehors de ces heures

    je connais bien les programmation VBA, mais là je sèche un peu



    vous auriez une idée

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    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 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Je te propose d’utiliser une fonction, je ne sais pas si le script est bien articulé par rapport à ce que tu veux qu'il fasse.
    Je l'ai écrit à la volé donc il faudra peut être débugger
    C'est l'idée qu'il faut retenir

    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
    71
    function ReadVlc($EMP_util, $EMP_lecture, $EMP_VLC_local)
    {
        #Si le ping n'est pas réussi
        if ((Test-Connection 8.8.8.8 -Quiet) -eq $false)
        {
            return
        }
     
        #Arret VLC si lancé
        Get-Process -Name "vlc" -ErrorAction SilentlyContinue | Stop-Process -Force
        #Attend la fermeture du process 5 secondes
        Wait-Process -Name "vlc" -Timeout 5 -ErrorAction SilentlyContinue
     
        #Si le dossier de lecture n'existe pas, le créer
        if(!(Test-Path $EMP_lecture -PathType Container)) 
        { 
            New-Item -Path $EMP_lecture -ItemType Directory | Out-Null
        }
     
        #Récupérer les informations sur les dossiers de lecture et utilisateur
        $Videos_serveur = Get-ChildItem -Path $EMP_util -ErrorAction SilentlyContinue | Where-Object {$_.extension -in '.mp4','.wmv' ,'.avi' }
        $Videos_locales = Get-ChildItem -Path $EMP_lecture -ErrorAction SilentlyContinue | Where-Object {$_.extension -in '.mp4','.wmv' ,'.avi' }
     
        #Si les noms de vidéos locales ne sont pas les mêmes que les noms sur le serveur
        if (Compare-Object $Videos_locales.Name $Videos_serveur.Name)
        {
            Remove-Item -Path ($EMP_lecture + "*") -Recurse
            Copy-Item ($EMP_util + "*") -Destination $EMP_lecture -Recurse
        }
     
        Start-Process $EMP_VLC_local $EMP_lecture -NoNewWindow
     
    }
     
    #Emplacement VLC
    $EMP_VLC32 = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
    $EMP_VLC64 = "C:\Program Files\VideoLAN\VLC\vlc.exe"
     
    if(Test-Path $EMP_VLC32 -PathType Leaf)
    { 
        $EMP_VLC_local = $EMP_VLC32
    }
    elseif(Test-Path $EMP_VLC64 -PathType Leaf)
    {
        $EMP_VLC_local = $EMP_VLC64
    }
    else
    {
        [System.Windows.Forms.MessageBox]::Show("Répertoire VLC non déterminé. Impossible de lancer l'affichage vidéo.","Erreur",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Warning)
        exit 1
    }
     
    $GD = Get-Date
    #S'il est exactement 23h59
    if ($GD.Hour -eq 23 -and $GD.Minute -eq 59)
    {
        #Redémarrer le PC
        Restart-Computer -Force
    }
    #S'il est entre 7H et 18H
    elseif ($GD.TimeOfDay -gt [System.TimeSpan]::new(7, 0, 0) -and $GD.TimeOfDay -lt [System.TimeSpan]::new(18, 0, 0))
    {
        ReadVlc "\\LIV-FS06\Raspberry_Affichage\Labo\video\A\" "C:\Liste_lecture\A\" $EMP_VLC_local
    }
    #Sinon
    else
    {
        ReadVlc "\\LIV-FS06\Raspberry_Affichage\Labo\video\B\" "C:\Liste_lecture\B\" $EMP_VLC_local
    }
     
    exit 0

Discussions similaires

  1. Modifier un script utilisant un tableau
    Par Theberge43 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 17/12/2006, 21h54
  2. [débutant][modifier un script] Il me faut une même valeur name !
    Par 15patates34 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/05/2006, 02h22
  3. Modifier le script d'installation
    Par onet dans le forum Debian
    Réponses: 2
    Dernier message: 04/04/2006, 16h54
  4. [Upload] Modifier ce script... (script d'upload)
    Par CyberTwister dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2006, 09h54

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