[cmd] Parameterübergabe

patrick555

Cadet 2nd Year
Registriert
Aug. 2006
Beiträge
30
Hallo forumbase,

ich wollte folgenden Befehl ausführen, der aber nicht ging (Ist er überhaupt richtig rum geschrieben?):
Code:
E:\Images\kx2>dir E:\Images\kx2 /a /s /b | upx --best

upx erwartet pro Aufruf nur einen Paramter als Datei. Zur Information hier die "Hilfe"-Ausgabe von upx:
Code:
E:\Images\kx2>upx
                       Ultimate Packer for eXecutables
  Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
UPX 3.02w       Markus Oberhumer, Laszlo Molnar & John Reiser   Dec 16th 2007

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
  -1     compress faster                   -9    compress better
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give more help                    -L    display software license
Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  -k     keep backup files
file..   executables to (de)compress

Die "Befehlszeilenreferenz" (%windir%\hh.exe ms-its:C:\WINDOWS\Help\ntcmds.chm::/ntcmds.htm) konnte mir auch nicht wirklich weiter helfen, vor allem das Kapitel "Umleiten der Befehlsausgabe" finde ich sehr umstänlich geschrieben.

Vielen Dank schon mal im Voraus.

Gruß,
p555
 
Was genau möchtest Du denn machen und was bedeuten der Code (E:\Images\kx2>dir E:\Images\kx2 /a /s /b | upx --best) und was soll er bezwecken?
 
Ich möchte alle Dateien in einem Ordner sowie Unterordner (also rekursiv) mit upx komprimieren.

Die Option /b von dir bewirkt, dass z.B. keine Zusammenfassung ausgegeben wird und upx somit weniger Fehler bringt (ein paar werden dennoch kommen, da trotzdem auch Ordnernamen übergeben werden, aber das macht nix).
/s bedeutet rekursiv und /a bedeutet, dass er alle Dateien auflistet.

Es soll also
Code:
upx [I]Optionen Datei1[/I]
upx [I]Optionen Datei2[/I]
upx [I]Optionen Datei3[/I]
usw...
aufgerufen werden.

Hier ist, was dir bei mir bringt:
Code:
E:\Images\kx2\AUTORUN.INF
E:\Images\kx2\BOOTFONT.BIN
E:\Images\kx2\bpe
E:\Images\kx2\cmpnents
E:\Images\kx2\DOCS
E:\Images\kx2\I386
E:\Images\kx2\README.HTM
E:\Images\kx2\setup.exe
E:\Images\kx2\setupxp.htm
E:\Images\kx2\SUPPORT
E:\Images\kx2\VALUEADD
E:\Images\kx2\WIN51
E:\Images\kx2\WIN51IP
E:\Images\kx2\win51ip.SP2
E:\Images\kx2\cmpnents\netfx
E:\Images\kx2\cmpnents\TABLETPC
E:\Images\kx2\cmpnents\netfx\i386
E:\Images\kx2\cmpnents\netfx\i386\netfx.cab
E:\Images\kx2\cmpnents\TABLETPC\i386
E:\Images\kx2\cmpnents\TABLETPC\i386\cskbc.dl_
[...]

Die 3. Zeile beispielsweise wird in upx einen Fehler verursachen, da upx nur Dateien und keine Ordner komprimieren kann.



Ich müsste also die Ergebnisse von dir an upx hängen, aber mit "|" funktioniert es nicht so ganz. Es sieht so aus, als ob beide Programme gleichzeitig starten, aber upx keine Eingabe bekommt und nur einmal aufgerufen wird (folgendes steht mitten in der Ausgabe von dir).

Code:
[...]
E:\Images\kx2\bpe\seite 6-Dateien\promo_bullet.gif
E:\Images\kx2\bpe\seite 6-Dateien\promo_bullet_002.gif
E:\Images\kx2\bpe\seite 6-Dateien\rightarrow_button.gif
E:\Images\kx2\bpe\seite 6-Dateien\rss_extra.gif
E:\Images\kx2\bpe\seite 6-Dateien\search-bg.gif
E:\Images\kx2\bpe\seite 6-Dateien\search.htm
                       Ultimate Packer for eXecutables
  Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
UPX 3.02w       Markus Oberhumer, Laszlo Molnar & John Reiser   Dec 16th 2007

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
E:\Images\kx2\bpe\seite 6-Dateien\shopping-charts_yl.gif  -1     compress faster
                   -9    compress better
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give more help                    -L    display software license
Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  -k     keep backup files

file..   executables to (de)compress

Type 'upx --help' for more detailed help.
E:\Images\kx2\bpe\seite 6-Dateien\sp2cd_20_nero_4_thumb.gif
UPX comes with ABSOLUTELY NO WARRANTY; for details visit http://upx.sf.net

E:\Images\kx2\bpe\seite 6-Dateien\sp2cd_22_nero_5_thumb.gif
E:\Images\kx2\bpe\seite 6-Dateien\sp2cd_24_nero_6_thumb.gif
E:\Images\kx2\bpe\seite 6-Dateien\sp2cd_25_nero_7_done.gif
E:\Images\kx2\bpe\seite 6-Dateien\suchen_extra.gif
E:\Images\kx2\bpe\seite 6-Dateien\tests-cnet-160.gif
E:\Images\kx2\bpe\seite 6-Dateien\urchin.js
[...]
 
Verstehen kann ich den Sinn des ganzen trotzdem nicht
E:\Images\kx2>dir E:\Images\kx2 /a /s /b | upx --best
Du rufst doch etwas zu oft auf,
E:\Images\kx2>dir /a /s /b | upx --best
sollte doch reichen und ein Dateiname sollte doch auch angegeben werden, wie die gepackte Datei heissen soll, oder verstehe ich das Ganze falsch?
 
upx ist ein EXE-Datei-Packer, wozu lässt du den auf Dateien wie HTML-, GIF- und andere Dateien los oO
 
E:\Images\kx2>dir /a /s /b | upx --best
sollte doch reichen und ein Dateiname sollte doch auch angegeben werden, wie die gepackte Datei heissen soll, oder verstehe ich das Ganze falsch?

Ja, von mir aus. Das ich schon im Verzeichnis kx2 war, war eher zufall. Dann eben nur dir /a /s /b, ich lass mich überreden ;-).

Hm, das mit dem Dateinamen ist so ne Sache. Wenn ich nichts weiter angeb, wird die ungepackte Datei einfach mit der Gepackten überschrieben. Mir wärs aber lieber, wenn alle in ein neues Verzeichnis geschrieben werden. Ist das irgendwie möglich? Der Name müsste aber beibehalten werden. Aber im Prinzip hast du es denke ich schon verstanden.


wozu lässt du den auf Dateien wie HTML-, GIF- und andere Dateien los

Naja, es schadet nicht. Fürs erste würde es mir reichen, wenn es überhaupt geht.
 
Versteht ihr nicht, was ich meine, oder warum antwortet keiner? Das mit den Pipes ist doch in Unix sehr üblich.
 
Zurück
Oben