Estou tentando compactar arquivos individualmente, mas o tipo de arquivo é desconhecido

0

Estou tentando compactar alguns arquivos com um tipo de arquivo desconhecido individualmente. Estou usando o seguinte código em um script em lote para fazer isso:

@ECHO OFF 
FOR %%A IN (bestbuy*nat*component.cpi*) DO "C:\Program Files-Zipz.exe" a -mx9 -m0=lzma2:d256m "%%~nA.7z" "%%A"

O código comprimirá os arquivos individualmente APENAS se o arquivo tiver uma extensão. Infelizmente os arquivos que eu tenho não possuem nenhuma extensão. No código que estou tentando compactar arquivos fazendo uma correspondência de padrões, os arquivos estão sendo compactados em um arquivo (o que eu não quero, quero cada arquivo compactado individualmente).

Por que esse código cria arquivos zip separados quando os arquivos têm uma extensão (por exemplo, se eu adicionar .txt ao final dos arquivos) e quando não há nenhuma extensão, o código cria um arquivo compactado.

Alguém pode me ajudar com o código para compactar arquivos com tipo de arquivo desconhecido, para que cada arquivo seja compactado individualmente

Sua ajuda seria muito apreciada.

    
por Jason Mander 20.12.2012 / 05:01

1 resposta

1

Você pode ter sido enganado pelo arquivo de ajuda do 7z ( URL alternativo) onde ele escreve

7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't follow the archaic rule by which *.* means any file. 7-Zip treats *.* as matching the name of any file that has an extension. To process all files, you must use a * wildcard.

Neste ponto, no seu arquivo de lote em que você está fornecendo os parâmetros curinga 7z.exe não está envolvido. Em um sistema Windows, a linha de comando deve ser:

FOR %%A IN (bestbuy*nat*component*)  DO "C:\Program Files-Zipz.exe" a –mx9   –m0=lzma:d=256m "%%~nA.7z" "%%A"

Alterei o parâmetro –m0 , pois ele não corresponde às minhas especificações na versão em execução. Depois dessas pequenas modificações, funciona bem para mim.

Atualização:

Aqui está a saída do meu ambiente de teste:

C:\Temp> 7zip.bat
C:\Temp> FOR %A IN (7*test*) DO "C:\Program Files-Zipz.exe" a -mx9 -m0=lzma:d=256m %~nA.7z %A
C:\Temp> "C:\Program Files-Zipz.exe" a -mx9 -m0=lzma:d=256m 7ziptest_1.7z 7ziptest_1.txt
7-Zip [64] 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Scanning
Creating archive 7ziptest_1.7z
Compressing  7ziptest_1.txt
Everything is Ok
C:\Temp> "C:\Program Files-Zipz.exe" a -mx9 -m0=lzma:d=256m 7ziptest_2.7z 7ziptest_2.txt
7-Zip [64] 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Scanning
Creating archive 7ziptest_2.7z
Compressing  7ziptest_2.txt
Everything is Ok
C:\Temp> "C:\Program Files-Zipz.exe" a -mx9 -m0=lzma:d=256m 7ziptest_3.7z 7ziptest_3
7-Zip [64] 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Scanning
Creating archive 7ziptest_3.7z
Compressing  7ziptest_3
Everything is Ok
    
por 20.12.2012 / 09:49