How can i extract info from a 7z directory for many files without 7zip installed

  • Hey i've been messing around with Retroplayer and whilst its really good, lots of my rom collections are in big 7zip directories that it can't play.

    I've been looking at scripts to bulk extract them all using

    Code
    7z e [archived-file.7z]

    However 7zip isn't installed. Guessing because libreleec isn't like linux i can't just install from a repository and run a 7zip installer to help?

    Ideally if i have the folder structure:


    Games:

    Console A

    --Game1.7z

    --Game2.7z

    --Game3.7z

    Console B

    --Game1.7z

    --Game2.7z

    --Game3.7z

    I'm wanting my script to iterate through all my consoles, extract the zips into a directory of the same name and then delete the original file.

    Any help is much appreciated.

  • ##############################################

    # LibreELEC #

    # https://libreelec.tv #

    ##############################################

    LibreELEC (official): 9.2.6 (Generic.x86_64)

    LibreELEC:~ # which 7z

    /storage/.kodi/addons/virtual.system-tools/bin/7z

    LibreELEC:~ # 7z

    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21

    p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs x64)

    Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]

    [<@listfiles...>]

    <Commands>

    a : Add files to archive

    b : Benchmark

    d : Delete files from archive

    e : Extract files from archive (without using directory names)

    h : Calculate hash values for files

    i : Show information about supported formats

    l : List contents of archive

    rn : Rename files in archive

    t : Test integrity of archive

    u : Update files to archive

    x : eXtract files with full paths

    <Switches>

    -- : Stop switches parsing

    -ai[r[-|0]]{@listfile|!wildcard} : Include archives

    -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives

    -ao{a|s|t|u} : set Overwrite mode

    -an : disable archive_name field

    -bb[0-3] : set output log level

    -bd : disable progress indicator

    -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line

    -bt : show execution time statistics

    -i[r[-|0]]{@listfile|!wildcard} : Include filenames

    -m{Parameters} : set compression Method

    -mmt[N] : set number of CPU threads

    -o{Directory} : set Output directory

    -p{Password} : set Password

    -r[-|0] : Recurse subdirectories

    -sa{a|e|s} : set Archive name mode

    -scc{UTF-8|WIN|DOS} : set charset for for console input/output

    -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files

    -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands

    -sdel : delete files after compression

    -seml[.] : send archive by email

    -sfx[{name}] : Create SFX archive

    -si[{name}] : read data from stdin

    -slp : set Large Pages mode

    -slt : show technical information for l (List) command

    -snh : store hard links as links

    -snl : store symbolic links as links

    -sni : store NT security information

    -sns[-] : store NTFS alternate streams

    -so : write data to stdout

    -spd : disable wildcard matching for file names

    -spe : eliminate duplication of root folder for extract command

    -spf : use fully qualified file paths

    -ssc[-] : set sensitive case mode

    -ssw : compress shared files

    -stl : set archive timestamp from the most recently modified file

    -stm{HexMask} : set CPU thread affinity mask (hexadecimal number)

    -stx{Type} : exclude archive type

    -t{Type} : Set type of archive

    -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options

    -v{Size}[b|k|m|g] : Create volumes

    -w[{path}] : assign Work directory. Empty path means a temporary directory

    -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames

    -y : assume Yes on all queries