shellexecutewait macht was anderes als erwartet

  • ich habe folgendes problem.
    ich versuche am ende einer ordnerstruktur den inhalt von ordnern zu packen.
    die stuktur sieht folgndermaßen aus. d:\bilder\januar ....februar ....märz etc.....
    wenn ich nun mit shellexecutewait versuche den ordner januar zu packen, packt der auch februar, märz, april, usw. in dieses archiv.
    rar geht also superrecursiv vor. lasse ich -r weg geht nur ganz kurz das fenster auf, ist aber zu schnell weg um was zu erkennen.

    [autoit]

    ShellExecuteWait("rar.exe"," a -ep1 -r -p"&$pwd&" "&InputBox("","archivname","123")&" "&$sFileSelectFolder,"")

    [/autoit]

    die rar.exe ist im scriptverzeichnis
    die liste der commands von rar sind folgende:

    Spoiler anzeigen

    Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
    <@listfiles...> <path_to_extract\>

    <Commands>
    a Add files to archive
    c Add archive comment
    ch Change archive parameters
    cw Write archive comment to file
    d Delete files from archive
    e Extract files without archived paths
    f Freshen files in archive
    i[par]=<str> Find string in archives
    k Lock archive
    l[t[a],b] List archive contents [technical[all], bare]
    m[f] Move to archive [files only]
    p Print file to stdout
    r Repair archive
    rc Reconstruct missing volumes
    rn Rename archived files
    rr[N] Add data recovery record
    rv[N] Create recovery volumes
    s[name|-] Convert archive to or from SFX
    t Test archive files
    u Update files in archive
    v[t[a],b] Verbosely list archive contents [technical[all],bare]
    x Extract files with full path

    <Switches>
    - Stop switches scanning
    @[+] Disable [enable] file lists
    ac Clear Archive attribute after compression or extraction
    ad Append archive name to destination path
    ag[format] Generate archive name using the current date
    ai Ignore file attributes
    ao Add files with Archive attribute set
    ap<path> Set path inside archive
    as Synchronize archive contents
    c- Disable comments show
    cfg- Disable read configuration
    cl Convert names to lower case
    cu Convert names to upper case
    df Delete files after archiving
    dh Open shared files
    dr Delete files to Recycle Bin
    ds Disable name sort for solid archive
    dw Wipe files after archiving
    e[+]<attr> Set file exclude and include attributes
    ed Do not add empty directories
    en Do not put 'end of archive' block
    ep Exclude paths from names
    ep1 Exclude base directory from names
    ep2 Expand paths to full
    ep3 Expand paths to full including the drive letter
    f Freshen files
    hp[password] Encrypt both file data and headers
    ht[b|c] Select hash type [BLAKE2,CRC32] for file checksum
    id[c,d,p,q] Disable messages
    ieml[addr] Send archive by email
    ierr Send all messages to stderr
    ilog[name] Log errors to file (registered versions only)
    inul Disable all messages
    ioff Turn PC off after completing an operation
    isnd Enable sound
    k Lock archive
    kb Keep broken extracted files
    log[f][=name] Write names to log file
    m<0..5> Set compression level (0-store...3-default...5-maximal)
    ma[4|5] Specify a version of archiving format
    mc<par> Set advanced compression parameters
    md<n>[k,m,g] Dictionary size in KB, MB or GB
    ms[ext;ext] Specify file types to store
    mt<threads> Set the number of threads
    n<file> Additionally filter included files
    n@ Read additional filter masks from stdin
    n@<list> Read additional filter masks from list file
    o[+|-] Set the overwrite mode
    oc Set NTFS Compressed attribute
    oh Save hard links as the link instead of the file
    oi[0-4][:min] Save identical files as references
    ol Save symbolic links as the link instead of the file
    or Rename files automatically
    os Save NTFS streams
    ow Save or restore file owner and group
    p[password] Set password
    p- Do not query password
    qo[-|+] Add quick open information [none|force]
    r Recurse subdirectories
    r- Disable recursion
    r0 Recurse subdirectories for wildcard names only
    ri<P>[:<S>] Set priority (0-default,1-min..15-max) and sleep time in ms
    rr[N] Add data recovery record
    rv[N] Create recovery volumes
    s[<N>,v[-],e] Create solid archive
    s- Disable solid archiving
    sc<chr>[obj] Specify the character set
    sfx[name] Create SFX archive
    si[name] Read data from standard input (stdin)
    sl<size> Process files with size less than specified
    sm<size> Process files with size more than specified
    t Test files after archiving
    ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format
    tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format
    tk Keep original archive time
    tl Set archive time to latest file
    tn<time> Process files newer than <time>
    to<time> Process files older than <time>
    ts<m,c,a>[N] Save or restore file time (modification, creation, access)
    u Update files
    v<size>[k,b] Create volumes with size=<size>*1000 [*1024, *1]
    vd Erase disk contents before creating volume
    ver[n] File version control
    vn Use the old style volume naming scheme
    vp Pause before each volume
    w<path> Assign work directory
    x<file> Exclude specified file
    x@ Read file names to exclude from stdin
    x@<list> Exclude files listed in specified list file
    y Assume Yes on all queries
    z[file] Read archive comment from file

    I spent 10 minutes reviewing code and thinking "What kind of drugs is this guy on?" before realizing it was something I wrote.

    Einmal editiert, zuletzt von Maximus1 (28. September 2014 um 15:49)

  • [autoit]

    ShellExecuteWait("rar.exe"," a -ep1 -p"&$pwd&" "&$archivname&" "&'"'&$sFileSelectFolder&'"',"")

    [/autoit]

    jetzt klappt es. das script hat sich an leerzeichen im pfad verschluckt.

    I spent 10 minutes reviewing code and thinking "What kind of drugs is this guy on?" before realizing it was something I wrote.