Ligne de commande 7-Zip: Extraire silencieusement / tranquillement [dupliquer]

16

Duplicata possible:
Comment désactiver la sortie de 7-Zip?

Je souhaite utiliser à 7z.exepartir d'une invite de commande pour extraire silencieusement / silencieusement une archive. Je ne souhaite pas utiliser de scripts ou d'API tiers. 7-Zip a-t-il un support natif pour une extraction silencieuse en ligne de commande?

oscilatingcretin
la source
7zip n'a pas de mode silencieux. Donc, si vous ne voulez pas voir la sortie, vous pouvez utiliser "écran". démarrer un nouvel écran, puis exécutez la commande d'extraction 7zip, puis détachez-vous de l'écran à l'aide de "Ctrl-A + d". L'écran s'exécutera en arrière-plan et vous ne verrez pas la sortie. Vous pouvez rattacher l'écran lorsque cela est nécessaire pour voir ce qui se passe. Une fois terminé, vous pouvez mettre fin à la session "écran".
bgth

Réponses:

7

7-Zip n'a pas de mode explicite "silencieux" ou "silencieux" pour l'extraction en ligne de commande.

Une question similaire sur Stack Overflow, Extraire un fichier 7-Zip "silencieusement" - option de ligne de commande , donne une solution possible en utilisant le code de script Python:

Une possibilité serait de générer le processus enfant avec popen, donc sa sortie reviendra au parent pour être traitée / affichée (si vous le souhaitez) ou bien complètement ignorée (créez votre objet popen avec stdout = PIPE et stderr = PIPE pour pouvoir pour récupérer la sortie de l'enfant).

Et puis une question similaire ici sur Super User, Rediriger la sortie de ligne de commande de 7-Zip vers / dev / null sur Windows lors de l'extraction d'un fichier .7z signale que le problème est principalement la sortie, et qu'en envoyant la sortie à NULL, vous rendre le système essentiellement silencieux:

Essayez de faire ceci:

% COMSPEC% / c "% ProgramFiles% \ 7-Zip \ 7z.exe" ...

music2myear
la source
Remarque: J'ai utilisé la réponse modifiée dans ma question par quelqu'un d'autre. Mettre `> NUL` à la fin de ma chaîne de ligne de commande fonctionne. Je marque juste ceci comme réponse pour augmenter ma ration de réponses car je ne peux pas supprimer ce post.
oscilatingcretin
Je fais parfois la même chose. Il est bon de noter, comme vous le faites, lorsque cela se produit que ce n'est pas tout à fait la bonne réponse, juste la plus pratique.
music2myear
6

Oui, il prend en charge l'utilisation de la ligne de commande. Ouvrez une invite de commande et accédez au dossier d'installation (généralement C: \ Program Files \ 7-Zip) et tapez:

7z -h

Voici le résultat:

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a: Add files to archive
  b: Benchmark
  d: Delete files from archive
  e: Extract files from archive (without using directory names)
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full paths
<Switches>
  -ai[r[-|0]]{@listfile|!wildcard}: Include archives
  -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
  -bd: Disable percentage indicator
  -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -scs{UTF-8 | WIN | DOS}: set charset for list files
  -sfx[{name}]: Create SFX archive
  -si[{name}]: read data from stdin
  -slt: show technical information for l (List) command
  -so: write data to stdout
  -ssc[-]: set sensitive case mode
  -ssw: compress shared files
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -v{Size}[b|k|m|g]: Create volumes
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
  -y: assume Yes on all queries

Voici donc un exemple d'extraction silencieuse:

7z x "C:\Path\To\File.zip" -y > nul
EBGreen
la source
11
Il ne pose pas de questions sur les options de commande, il pose des questions spécifiques sur le fonctionnement silencieux à partir de la ligne de commande.
music2myear
3
Oui. En fait, j'ai canalisé les résultats dans un fichier texte et recherché «silencieux» et «silencieux» parce que je pensais que l'exemple du répondeur ne montrait rien.
oscilatingcretin
2
Le silence peut signifier différentes choses pour différentes personnes. Je supposais que l'OP lirait et appliquerait les commutateurs qu'ils voulaient, mais je peux certainement fournir un exemple.
EBGreen
3
Ne répond pas à la question. Où, dans votre réponse, indique-t-il le mode silencieux / silencieux?
NickG
Brillant, je voulais réduire le spam lors de ma génération et le piping à zéro était exactement ce dont j'avais besoin.
Matt Klein du