Existe-t-il un one-liner permettant de compresser / décompresser des fichiers (* .zip) dans PowerShell?
105
Existe-t-il un one-liner permettant de compresser / décompresser des fichiers (* .zip) dans PowerShell?
Réponses:
DotNetZip vous permettra de le faire à partir de PowerShell. Ce n'est pas une ligne, mais la bibliothèque vous permettra d'écrire le script PowerShell dont vous avez besoin.
Vous pouvez également utiliser l'interface COM, voir Compresser les fichiers avec Windows PowerShell, puis conditionner un gadget Windows Vista Sidebar .
Googler "zip PowerShell" ou "Unzip PowerShell" pourrait également donner des résultats utiles.
la source
Voici comment vous pouvez le faire uniquement à partir de Powershell sans outils externes. Cela décompresse un fichier appelé test.zip dans le répertoire de travail en cours:
la source
$destination.Copyhere($zip_file.items())
effectue la décompression réelle.function unzip($filename) { if (!(test-path $filename)) { throw "$filename does not exist" } $shell = new-object -com shell.application $shell.namespace($pwd.path).copyhere($shell.namespace((join-path $pwd $filename)).items()) }
Maintenant, dans .NET Framework 4.5, il existe une classe ZipFile que vous pouvez utiliser comme ceci:
la source
(Resolve-Path $someDir).Path
les arguments.Vous voudrez peut-être consulter les extensions de la communauté PowerShell (PSCX) qui disposent d’applets de commande spécialement conçues à cet effet.
la source
Je sais que la question est très ancienne, mais je viens de la voir reliée sur Twitter, pensant publier une réponse actualisée.
PowerShell 5, actuellement disponible sous Windows 10 ou via Windows Management Framework 5 Production Preview , est fourni avec deux applets de commande intégrées pour la compression et le décompression:
la source
Je trouve la solution la plus simple qui consiste à utiliser les fichiers binaires d’Infozip que j’utilise depuis des années et à utiliser dans un environnement UNIX.
Il serait tout à fait direct de placer une enveloppe PowerShell autour du texte mais, dans la pratique, je n'en ai jamais besoin et je ne m'en suis donc pas soucié.
http://www.info-zip.org/
la source
J'aime aussi Info-ZIP (le moteur Zip que l'on trouve dans la plupart des autres utilitaires Zip) et 7-Zip , un autre favori qui possède à la fois une interface graphique et un utilitaire Zip en ligne de commande. Le fait est que de bons utilitaires de ligne de commande fonctionnent pour la plupart des tâches PowerShell.
Il existe des astuces pour exécuter des utilitaires de ligne de commande qui n'ont pas été conçues avec PowerShell:
Si vous exécutez un fichier exécutable dont le nom commence par un numéro, faites-le précéder d’une esperluette (&).
& 7zip.exe
Entourez chaque jeton que l’utilitaire attend de la ligne de commande, entre guillemets.
& "c: \ chemin avec espace \ SomeCommand.exe" "/ paramètre2" "/ paramètre2" "valeur de paramètre2" "valeur2` "avec une citation"
Essaye ça:
Ou même:
la source
James Holwell j'aime votre réponse mais je l'ai développée un peu
la source
WinRAR peut fonctionner en mode CMD en acceptant des arguments
la source
L'approche ionique bascule:
https://dotnetzip.codeplex.com/wikipage?title=PS-Examples
prend en charge les mots de passe, d'autres méthodes de cryptage, etc.
la source
J'ai créé un module compatible avec PowerShell 2.0 qui utilise les commandes natives du système d'exploitation Windows pour compresser et décompresser des fichiers de manière synchrone. Cela fonctionne sur les systèmes d'exploitation plus anciens, tels que Windows XP, et ne nécessite pas .Net 4.5 ni aucun autre outil externe. Les fonctions bloqueront également l'exécution du script jusqu'à ce que tous les fichiers aient été compressés / décompressés. Vous pouvez trouver plus d'informations et le module sur mon blog ici .
la source