Eu não acho que seja possível apenas com o utilitário de linha de comando. O comando a
espera um nome de arquivo (para adicionar ou criar) e uma lista de arquivos.
Se tentar sem especificar um nome de arquivo, você receberá um System Error: Incorrect Function
porque o primeiro argumento esperado é um nome de arquivo. Se você especificar um executável por exemplo, ele dirá que o tipo de arquivo não é suportado, pois ele tentará criar um .exe
archive.
No entanto : o 7-zip é um software de código aberto. Você pode modificar como o comando a
funciona para esperar diferentes argumentos, ou até mesmo fazer um novo comutador próprio!
Aqui está um script em Perl que eu rapidamente joguei, que deve ser capaz de fazer o que você quer:
#!C:/Perl/bin/perl.exe
use warnings;
use strict;
exit unless @ARGV;
my $path = "C:\Program Files\7-Zip\7z.exe"; # modify this accordingly
my $infile = (split /\./,$ARGV[0])[0];
system("\"$path\" a $infile @ARGV");
O script pegará o nome do primeiro argumento (antes do .
no nome do arquivo) e usará isso como base para o nome do arquivo. Eu assumi que você está no Windows pela referência .exe
, altere a linha shebang se não.
Coloque o script em algum lugar em seu PATH e use-o da seguinte forma:
7z.pl target.exe otherfile someotherfile
Ele criará um arquivo chamado target.7z
com esses 3 arquivos em anexo.