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 :

Version PowerShell 4.0 problème de zip


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Par défaut Version PowerShell 4.0 problème de zip
    Bonjour,

    ma commande 'Compress-Archive' ne fonctionne pas sur mon serveur 2008

    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
    Compress-Archive : The term 'Compress-Archive' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the 
    name, or if a path was included, verify that the path is correct and try again.
    At D:\test.ps1:35 char:5
    +     Compress-Archive -Path ($Path + "index.txt") -CompressionLevel Optimal -Dest ...
    +     ~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Compress-Archive:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
     
    Terminé
    
    PS C:\> $PsVersionTable
    
    Name                           Value                                                                                                                              
    ----                           -----                                                                                                                              
    PSVersion                      4.0                                                                                                                                
    WSManStackVersion              3.0                                                                                                                                
    SerializationVersion           1.1.0.1                                                                                                                            
    CLRVersion                     4.0.30319.36470                                                                                                                    
    BuildVersion                   6.3.9600.19170                                                                                                                     
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}                                                                                                               
    PSRemotingProtocolVersion      2.2
    Mais avec la version 5.1.1, pas de problème mon script fonctionne

    Name                           Value
    ----                           -----
    PSVersion                      5.1.17763.771
    PSEdition                      Desktop
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    BuildVersion                   10.0.17763.771
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1     
    Mon script :
    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
    # Parameter
    Param(
        [Parameter()]
        [string]$Path = "C:\source\"
    )
     
    #Récupération des fichier txt commencant par 1988_test
    $list_fictxt = Get-ChildItem -Path $Path | Where-Object {$_.Name -match "^1988_test_[0-9]{9}_[0-9]{14}.txt"}
     
    #Parcours des fichiers précedemment récupéré
    foreach ($fictxt in $list_fictxt) {
        #Récupère le nom du txt
        $ficName = $fictxt.BaseName
     
        #Renomme ne txt en index.txt
        Rename-Item -Path ($Path + $fictxt.Name) -NewName ($Path + "index.txt")
     
        #Zip du txt avec son ancien nom
        Compress-Archive -Path ($Path + "index.txt") -CompressionLevel Optimal -DestinationPath ($Path + $ficName + ".zip")
     
        #Supprime le index.txt
        Remove-Item -Path ($Path + "index.txt")
    }
     
    Write-Host "Terminé"
    exit 0

    Merci de votre aide d'avance
    Birel

  2. #2
    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
    Cette commande requière Powershell 5.1 minimum
    https://docs.microsoft.com/en-us/pow...powershell-5.1

    On va devoir utiliser le framework, je te propose ceci inspiré de la : https://danvers72.wordpress.com/2014...a-single-file/

    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
    function New-ArchiveFromFile
    {
        Param
        (
            [string] $Source,
            [string] $Destination,
            [System.IO.Compression.CompressionLevel] $CompressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
        )
     
        Begin
        {
            [System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null
        }
        Process
        {
     
            try
            {
                $zipFile = [System.IO.Compression.ZipFile]::Open($Destination, [System.IO.Compression.ZipArchiveMode]::Create)
                [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipfile, $Source, ($Source | Split-Path -Leaf), $CompressionLevel) | Out-Null
            }
            catch
            {
                Write-Host "ERROR"
            }
        }
        End
        {
            $zipFile.Dispose()
        }
    }
     
    New-ArchiveFromFile -Source "C:\temp\monfichieracompresser.txt" -Destination "c:\temp\monfichiercompresser.zip" -CompressionLevel Optimal

  3. #3
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Par défaut
    Merci pour ton aide.

    J'ai essayer de fusionner les deux script mais j'ai un problème.
    Je débute en 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
    # Parameter help description
    Param(
        [Parameter()]
        [string]$Path = "C:\source\"
    )
     
    $list_fictxt = Get-ChildItem -Path $Path | Where-Object {$_.Name -match "^1988_test_[0-9]{9}_[0-9]{14}.txt"}
     
    function New-ArchiveFromFile
    {
        Param
        (
            [string] $Path,
            [string] $Destination,
            [System.IO.Compression.CompressionLevel] $CompressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
        )
     
        Begin
        {
            [System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null
        }
        Process
        {
     
            try
            {
                $zipFile = [System.IO.Compression.ZipFile]::Open($Destination, [System.IO.Compression.ZipArchiveMode]::Create)
                [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipfile, $Path, ($Path | Split-Path -Leaf), $CompressionLevel) | Out-Null
            }
            catch
            {
                Write-Host "ERROR"
            }
        }
        End
        {
            $zipFile.Dispose()
        }
    }
    foreach ($fictxt in $list_fictxt) {
        #Récupère le nom du txt
        $ficName = $fictxt.BaseName
     
        #Renomme ne txt en index.txt
        Rename-Item -Path ($Path + $fictxt.Name) -NewName ($Path + "index.txt")
     
        #Zip du txt avec son ancien nom
        New-ArchiveFromFile -Path ($Path + "index.txt") -CompressionLevel Optimal -DestinationPath ($Path + $ficName + ".zip")
     
        #Supprime le index.txt
        Remove-Item -Path ($Path + "index.txt")
    }

    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Impossible d’appeler une méthode dans une expression Null.
    Au caractère Ligne:37 : 9
    +         $zipFile.Dispose()
    +         ~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation : (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

  4. #4
    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
    Pourquoi modifies tu la function New-ArchiveFromFile ?

  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
    Surement que le chemin du fichier transmit à compresser est incorrecte.

  6. #6
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2019
    Messages : 13
    Par défaut
    J'essaye d'avoir le même résultat que mon script de base, mais je n'y arrive pas :/

    Dossier de destination et égal au dossier source non ?
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -[string]$Path = "C:\source\"
    -CompressionLevel Optimal -DestinationPath ($Path + $ficName + ".zip")

Discussions similaires

  1. problème java + zip : décompression impossible
    Par Papipen dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 09/04/2015, 15h31
  2. Problème de Zip ! :/
    Par Sylver--- dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/06/2007, 11h38
  3. Problème de zip
    Par Vikisme dans le forum Langage
    Réponses: 11
    Dernier message: 09/05/2007, 10h09
  4. Version visual basic 6, problème
    Par bugland dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 31/03/2007, 14h39
  5. Problème compression zip
    Par Kara dans le forum Delphi
    Réponses: 2
    Dernier message: 19/07/2006, 09h22

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