Quiero listar todos los archivos/carpetas en un archivo comprimido en la línea de comandos de 7-Zip y excluir '*' en la lista por expresión regular, para reconocer el recuento de carpetas en el primer nivel del archivo comprimido (como xxx\ o xxx, pero no xxx\abc).
como la lista del archivo, debe coincidir con los últimos tres y luego excluirlos, también conserve el primero:
xxx<br> xxx\123.txt
xxx\abc
xxx\abc\456.pdf
Intento usar así 7z l archive.zip -x!*\* , pero excluirá el primero xxx\ .
Actualización: utilizo *\?* temporalmente para filtrar las salidas.
z-zip no usa regex ni os comodines, tiene un rango de nombre de archivo de cambio muy limitado que está simplificado.
El problema principal es que aunque un archivo zip, en algunas encarnaciones, puede contener una entrada de carpeta vacía, la mayoría no lo hace, simplemente almacenan los nombres de archivo con sus nombres de ruta anteriores, por lo que no hay un nombre de carpeta independiente de todas esas entradas de comodín de archivo para ser enumerado.
Entonces, la respuesta en sí a su dilema es filtrar la salida de nombres de archivo más completos para el texto que necesita. Probablemente mucho más fácil de hacer que decir en Linux, pero es un dolor en los bucles for en Windows.