O comando 7z
no arquivo em lote que você forneceu usa o caminho completo do arquivo de entrada para obter o arquivo de saída.
Para alterar isso, você pode alterar "%~1.zip"
para "<destinationPath>\%~nx1.zip"
conforme mostrado abaixo ou para "<destinationPath>\%~n1.zip"
se você não precisar que a extensão do arquivo original esteja no novo nome de arquivo.
@echo off
if [%1]==[] goto :eof
:loop
7z a -tzip "<destinationPath>\%~nx1.zip" "%~1"
shift
if not [%1]==[] goto loop
Para esclarecimentos:
-
%~1
representa o nome completo do caminho da primeira entrada (ex: C: \ my \ caminho \ texto.txt) -
%~n1
representa o nome do arquivo somente da primeira entrada (ex: texto) -
%~x1
representa a extensão apenas da primeira entrada (ex: .txt) - Esses dois são combinados em
%~nx1
, que representa o nome do arquivo e a extensão da primeira entrada (ex: test.txt)