Você pode usar o comando 7z rn
para mover arquivos e pastas dentro de arquivos. Infelizmente, não é possível mover o diretório raiz. No entanto, você pode usar um script para analisar a saída de 7z l
e fazê-lo.
Aqui está um exemplo rápido em Python: ( 7z
tem que estar disponível em PATH)
import os;
import subprocess;
import sys;
if len(sys.argv) < 3:
print("Syntax: " + sys.argv[0] + " <archive> <subfolder>")
sys.exit(1)
skip = True
renamed = []
proc = subprocess.Popen(["7z", "l", sys.argv[1]], stdout=subprocess.PIPE, universal_newlines=True)
for line in iter(proc.stdout.readline, ''):
line_file = line.rstrip().split(" ")
path = line_file[len(line_file) - 1]
if path == "-" * 24:
skip = not skip
continue
if not skip:
path1 = path.split(os.sep)[0]
if not path1 in renamed:
renamed.append(path1)
newpath = sys.argv[2] + os.sep + path1
proc = subprocess.run(["7z", "rn", sys.argv[1], path1, newpath], stdout=subprocess.DEVNULL, check=True)