Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch nach zip-datei kopieren

Frage Entwicklung Batch & Shell

Mitglied: 30407

30407 (Level 1)

20.05.2006, aktualisiert 21.05.2006, 16228 Aufrufe, 15 Kommentare

Hi

ich würde gerne ein Batchprogramm schreiben, dass sich in alle Zip-Dateien in eínem bestimmten Ordner selbst reinschreibt bzw. sich als neue Batchdatei an alle Zip-dateien anfügt. Ist sowas möglich ?
Ich habe schon folgende Code gefunden:

echo for %%f in (*.zip ..\*.zip) do start /m winzip32 -a /%%f

Jedoch weis ich werder ob noch wie der funktioniert. Bitte um Hilfe !

Gruss Inkognitar
Mitglied: Biber
20.05.2006 um 20:38 Uhr
Moin Inkognitar,

ich würde gerne ein Batchprogramm schreiben, dass sich in alle Zip-Dateien in eínem bestimmten Ordner selbst reinschreibt
bzw. sich als neue Batchdatei an alle Zip-dateien anfügt. Ist sowas möglich ?
Ja. Alles außer Brotschneiden ist möglich als Batch.

Ich habe schon folgende Code gefunden:
echo for %%f in (*.zip ..\*.zip) do start /m winzip32 -a /%%f
Bitte umweltgerecht entsorgen, wenn der ohne Kommentare und Erläuterung auf den Boden irgendeines Forums gerotzt wurde.

Jedoch weis ich werder ob noch wie der funktioniert. Bitte um Hilfe !
Dann als Tipp zum richtigen Herangehen an solche Aufgaben:
1. Sortieren.
a) Was ist der Plan/die Idee?
In Deinem Fall: Okay, Idee ist da. Auch gut erklärt.
b) Was habe ich/weiß ich? Was brauche ich noch, was muss ich ermitteln?
Du hast Zip-Dateien.
Hast Du auch ein Zip-Programm, dass vom CMD-Prompt bedienbar ist?
Kennst Du dessen Parameter?
Dann können wir loslaufen. Vorher ist es eigentlich albern.

Zu dem Fund-Schnipsel oben...
Die Zeile oben abgeschickt bewirkt genau folgendes:
01.
$cmd$Testit.bat echo for %%f in (*.zip ..\*.zip) do start /m winzip32 -a /%%f 
02.
for %f in (*.zip ..\*.zip) do start /m winzip32 -a /%f
...also nur die Ausgabe der zweiten Zeile.

Gemeint war aber folgende (richtige) Ansatz
...wende auf alle *.zip-Dateien in diesem und im darüberliegenden Verzeichnis an, was nach dem DO geschrieben steht.

Das wäre also vom CMD-Prompt aus wie folgt:
(ich beschränke es mal auf das aktuelle Verzeichnis. Anwenden auf das übergeordnete Verzeichnis ist Dönekens praxisfern.)
$cmd$ For %f in (*.zip) Do whatever -parameter_vom_whatever %f

Je nachdem welches Zip-Programm Du verwendest, würde bei Dir also die am CMD-Prompt abzuschickende Zeile beispielsweise lauten
Syntax-Beispiel für winzip:
[pfad\]winzip32 [ [-min] action [options] Zipdatei ZuArchivierendeDatei(en)
01.
$cmd$For %f in (*.zip) Do winzip32 -min -a %f meineBatDatei.bat
In einem Batch müsstest Du jeweils die %-Zeichen in zwei Prozentzeichen ändern. (%%f statt %f)

Such bitte erstmal die Konsolen-Parameter Deines Zippers raus oder zumindest die Versionsnummer Deines Zip-Programms.

Gruß
Biber
Bitte warten ..
Mitglied: 30407
20.05.2006 um 22:54 Uhr
@ Biber:

Erst einmal Danke für deine schnelle Antwort. Außerdem tut es mir leid, wenn mein Thread nicht dem Standardformat bzw. Standardbedingungen gleicht.
Jedoch was meinst du mit $cmd$ ?
Wie sieht das in einer batch aus?
so :

@echo off
cd C:\test
For %%f in (*.zip) Do winzip32 -min -a %%f meineBatDatei.bat

Was meinst du mit Versionnummer bzw. warum ist die wichtig ?
Ich habe Winzip32.

Bzgl. "in batch ist alles möglich", kann ich nur sagen, dass "mailto" glaube ich nicht mehr geht.
Bitte warten ..
Mitglied: Biber
20.05.2006 um 23:19 Uhr
Moin Inkognitar,
Jedoch was meinst du mit $cmd$ ?
So sieht mein Standard-Prompt aus. Bei Dir steht vielleicht "C:\Dokumente und Einstellungen\Inkognitar>" oder so.
Soll nur zeigen, dass Das nicht zur eigentlichen Befehlszeile gehört.

Wie sieht das in einer batch aus?
so :
<code>
@echo off
cd C:\test
For %%f in (*.zip) Do winzip32 -min -a %%f meineBatDatei.bat
<code>

Ja, im Prinzip schon. Allerdings würde ich entweder
- wenn Du in einem Batch das Verzeichnis wechselst, danach den vorherigen Zustand wieder herstellen (mit PopD/PushD)
- oder das Verzeichnis nicht wechseln, sondern das Vertzeichnis in der Klammer angeben [ "....(c:\test\*zip) Do ..."]

Was meinst du mit Versionnummer bzw. warum ist die wichtig ?
*Seufz* Die ist wichtig, weil bei WinZip bis einschließlich Version 9.0 die Befehlszeilen-Parameter undokumentiert waren.
Ab Version 10.0 ist das über ein Extra-Commandline-Aufsatz machbar (und dokumentiert).
Ich habe Winzip32.
Dann schau doch mal unter "Info", welche Version das ist bitte.
Wenn 10.0, dann schau bitte auf www.winzip.com nach, da gibt es irgendwo ein Commandline-Tool zum Download.
Bei den Winzip-Versionen bis 9.0 kenne ich die Befehlszeilenoptionen und die, die Du brauchst, habe ich im ersten Posting angegeben.

Gruß
Biber
P.S.
Bzgl. "in batch ist alles möglich", kann ich nur sagen, dass "mailto" glaube ich nicht mehr geht.
Wieso sollte das nicht gehen?? *gg
Aber zum Mailen nehme sogar ich meistens so ein Klicki-Bunti-Kram mit Buttons und Adressbüchern und mehreren Eingabebereichen.
Bitte warten ..
Mitglied: 30407
21.05.2006 um 00:39 Uhr
Wie sieht der Vollständig Code mit Verzeichnis in Klammern aus ?
so:
<Code>
@echo off
For %%f in (c:\test\*.zip) Do winzip32 -min -a %%f meineBatDatei.bat
<Code>

Sry, aber die Methoden PopD bzw. PushD sagen mir garnichts.


Mein Winzip: Version 9.0 SR-1

zu mailto:
Das soll noch gehen ? Wie ? Mit Server ? Bitte um Code bzw Verbesserung :
<Code>
@echo off
start Mail.to=anybody@web.de
Mail.Subject=test-mail
Mail.Body= Ist jemand Zuhause ?
<Code>
Bitte warten ..
Mitglied: Biber
21.05.2006 um 01:18 Uhr
a) Ja, Batch sollte so funktionieren mit WinZip 9.0.
Eventuell noch die Pfadangabe zur Winzip32.exe ergänzen, z.B. "C:\Programme\Winzip\Winzip32.exe" schreiben.
b) PushD und PopD siehe Hilfe am CMD-Prompt (PushD /? und PopD /?)
PushD verzeichnis wechselt in ein Verzeichnis; PopD stellt den Vor-Zustand wieder her
c) mailto gehört in einen eigenen Thread.
Würde mit
01.
$cmd$start mailto:anybody@web.de?Subject=test-mail^&Body=Ist jemand Zuhause ?
...gehen.
Aber im Batch würde man/frau etwas Passenderes wie z.B. Blat.exe (siehe Forumssuche oder Suchmaschine) verwenden.

Gruß
Biber
Bitte warten ..
Mitglied: 30407
21.05.2006 um 10:56 Uhr
zu a)

Könntest du das mit einem Beispiel machen ?
Denn der Befehl:
For %%f in (c:\test\*.zip) Do winzip32 -min -a %%f meineBatDatei.bat
funktioniert bei mir nicht. Es kommt eine Fehlermeldung die sagt, dass winzip32 nicht gefunden werden konnte bzw. der Befehl falsch sei.

zu c)

dann werde ich mal einen neuen Thread aufmachen.

Gruss Inkognitar

PS: Kennst du auch den Befehl für Winrar ?
Bitte warten ..
Mitglied: Biber
21.05.2006 um 12:56 Uhr
Moin Inkognitar,

Stimmt, mein Fehler, das hab ich vergessen in meiner ersten Antwort beim Thema "Was muss ich ermitteln?".
Der Pfad zum Zip-Utility muss auch ermittelt werden, weil dieser auf CMD-Ebene nicht bekannt gegeben wurde; nur für Windows-Programme ist "winZip" oder "Winrar" ein bekanntes Programm, das ohne Pfadangabe gefunden werden kann.
Das heißt, ein "start Winzip" oder "start WinRar" funktioniert ohne Pfadangabe, aber ohne den Umweg über "Start" musst Du den Pfad angeben.

Also, ermitteln wir mal den Pfad zur Winzip32.exe....wieder viele Möglichkeiten,

a1) mit Klicki-Bunti über den Desktop-Link
wenn Du WinZip installiert hast, wird Dir eigentlich auf dem Desktop eine Verknüpfung angelegt.
Wenn das bei Dir so ist: Mit rechter Maustaste das Kontextmenü öffnen, unter "Eigenschaften" steht der Pfad zur WinZip32.exe.
Also so etwas wie "C:\Programme\WinZip90\WINZIP32.EXE". Diesen String musst Du dort einsetzen, wo jetzt "winzip32" in Deiner *.Bat Steht.

a2) Oder über den Menüpunkt "Suchen" im Startmenü
So, wie M$ es wohl vorgesehen hat, ....nach Winzip32.exe suchen.... kurze Zeit später bekommmst Du angezeigt, wo die Winzip32 liegt.
Pfad merken oder Abtippen.

-oder-

b) Vom Cmd-Prompt aus ermitteln mit "dir /s /b \winzip32.exe" und Path in der Batch eintragen
-oder-
c) im Batch ermitteln und da eine Variable "WinZip" oder "Winrar" mit dem kompletten Pfad setzen.

Parameter von WinRar

Da hatte wir letztens ein oder zwei Threads zu dem Thema - solltest Du über die Forumssuche mit "Winrar Batch" finden.

Dir Parameter stehen alle in eine ausführlichen deutschen Doku namens Rar.txt im WinRar-Verzeichnis
Also, wieder am CMD-Prompt "dir /s /b rar.txt" eingeben, dann findest Du die.
Zusammengefasst solltest Du vom CMD-Prompt aus Dein Ziel erreichen mit

For %f in (c:\test\*.zip) Do C:\Programme\WinZip90\winzip32 -min -a %f meineBatDatei.bat
-oder-
For %f in (c:\test\*.rar) Do C:\Programme\WinRar351\winrar -a %f meineBatDatei.bat

Hope That Helps
Biber

P.S. Die Notwendigkeit für einen Batch sehe ich nach wie vor nicht - gib doch die eine Zeile am CMD-Prompt ein, wenn Du sie brauchst.
P.P.S. Neuer Thread für "Mail senden per Batch" ist auch nur nötig, wenn die Forumssuche Deine Fragen nicht beantwortet. Blat.exe wurde auch schon öfters beschrieben hier.
Bitte warten ..
Mitglied: 30407
21.05.2006 um 13:24 Uhr
Hi,
ich habe es versucht, jedoch kam bei mir folgende Fehlermeldung:

Aktion: Dateien hinzufügen (ggf. ersetzen) Untergeordnete Ordner einbeziehen: Ja Vollständige Pfadangaben: Nein
Warnung: Keine Übereinstimmung bei: meineBatDatei.bat
Fehler: Für diese Aktion wurden keine Dateien mit diesem Kriterium gefunden - Nichts zu tun! (c:\test\test.zip)

Woran kann das liegen ? Liegt es vielleicht daran das ich keine registrierte Version habe ? Außerdem eine Winzip32.exe gibt es in meinem Verzeichnis(C:\Programme\WinZip) nicht, nur einen Winzip32.zip.
Bitte warten ..
Mitglied: Biber
21.05.2006 um 13:46 Uhr
Tja,
sieht so aus, als hätte er die "meineBatDatei.bat" nicht gefunden.
Dann gibt es wohl keine Datei dieses Namens in dem Verzeichnis, in dem die *.zip-Dateien sind.
Also gib von der *.bat-Datei, die Du in alle Zip-Archive einfügen willst, auch den vollständigen Namen an, z.B. "C:\Test\MeineBatDatei".

Du musst es schon erst einmal vom CMD-Prompt zum Laufen bringen, bevor Du es in der Batchdatei hinterlegst.
In der Batchdatei, die ja sich selbst in die Archive kopieren soll, wenn ich es richtig verstanden habe, kannst Du dann nach dem Testen schreiben:
01.
For %%f in (c:\test\*.zip) Do C:\Programme\WinZip90\winzip32 -min -a %%f %~dpnx0
Die Variable %~dpnx0 liefert den vollständigen Pfad und Dateinamen der gerade gestarteten *.bat-Datei, e.g. "c:\test\meineBatDatei.bat"

Gruß Biber
Bitte warten ..
Mitglied: 30407
21.05.2006 um 14:59 Uhr
Danke, es hat funktioniert !

Jedoch noch 3 Fragen :
1. Bei dieser Aktion öffnet sich ein Winzip-Menü (wo auswählen muss ob ich weiterhin die testversion benutzen will). Kommt das bei der Vollversion auch (bzw. ein anderes Fenster) ? Kann man das Fenster automatisch schliessen (Mit tskill winzip32 gehts leider nicht.) bzw. es irgenwie unterdrücken ?
2. Kann ich beim kopieren der batch in ein Ziparchiev den namen der batch ändern ?
3. Der Code: For %%f in (c:\test\*.rar) Do C:\Programme\WinRAR\winrar \-a %%f %~dpnx0
hat bei mir nicht funktiniert. Was mache ich falsch ? Hängt das auch von der Version ab ?

Gruss Inkognitar

PS: Wieso hast du eigentlich einen anderen Pfad für dein Winzip- bzw. Winrarprogramm als ich ?
Bitte warten ..
Mitglied: Biber
21.05.2006 um 17:21 Uhr
Moin Inkognitar,
Danke, es hat funktioniert !
Schön, dass Du so geduldig warst.

Jedoch noch 3 Fragen :
1. ... Kommt das bei der Vollversion auch (bzw. ein anderes Fenster) ?
Nein. Bei der Vollversion kommt es nicht. Und die kosten glaube ich ca. 25 Euro. Soviel ist WinZip mit Sicherheit wert.
Und wenn Du ja offensichtlich öfters ZIP-Dateien verwendest, wäre Registrierung der saubere Weg.

Kann man das Fenster automatisch schliessen bzw. es irgenwie unterdrücken ?
Glaube ich nicht - ich würde es registrieren.
2. Kann ich beim kopieren der batch in ein Ziparchiev den namen der batch ändern ?
Nein - aber natürlich vorher eine Kopie Deiner Batch anlegen unter dem Soll-Namen in Archiv.

3. Der Code: For %%f in (c:\test\*.rar) Do C:\Programme\WinRAR\winrar \-a %%f %~dpnx0
hat bei mir nicht funktiniert. Was mache ich falsch ? Hängt das auch von der Version ab ?
Sorry, da hab ich mich vertan. Bei WinRar wird eine separate Datei namens Rar.exe für Batch/CMD-Betrieb mitgeliefert.
Also:
For %%f in (c:\test\*.rar) Do C:\Programme\WinRAR\rar -a %%f %~dpnx0
Und einen Backslash "\" vor dem "-a" hattest Du zuviel.

Gruß Biber
Bitte warten ..
Mitglied: 30407
21.05.2006 um 17:53 Uhr
Hi,

der rar-befehl hat leider nicht funktioniert. Es kam folgende Meldung:


RAR Deutsche Version 3.51 (c) 1993-2005 Alexander Roshal 7.Okt.2005

Shareware Version Geben Sie RAR -? fr Hilfe ein.

Aufruf: RAR <Befehl> -<Schalter 1> -<Schalter N> <Archiv> <Dateien...>
<@Dateiliste...> <Zielverzeichnis\>

<Befehle>
a Dateien zum Archiv hinzufgen
c Archivkommentar hinzufgen
cf Dateikommentar hinzufgen
cw Archivkommentar in Datei schreiben
d Dateien aus Archiv l?schen
e Dateien ins aktuelle Verz. entpacken
f Dateien im Archiv aktualisieren
i[par]=<str> Zeichenkette in Archiv suchen
k Archiv vor Ver?nderung sichern
l[t,b] Archivinhalt auflisten [technisch, blank]
m[f] Ins Archiv verschieben [nur Dateien]
p Datei auf dem Bildschirm ausgeben
r Archiv reparieren
rc Fehlende Teilarchive rekonstruieren
rn Archivierte Dateien umbenennen
rr[N] Wiederherstellungsinf. speichern
rv[N] Rekonstruktions-Archive erzeugen
s[Name|-] Konvertiert in oder von SFX
t Archivierte Dateien berprfen
u Dateien im Archiv updaten
v[t,b] Archivinhalt ausfhrlich auflisten [technisch,blank]
x mit vollst?ndigen Verzeichnissen entpacken

<Schalter>
- Schalterbehandlung abbrechen
ac Archivattribut nach Kompression l?schen
ad Archivnamen an Zielverzeichnisnamen anh?ngen
ag[Format] Archivnamen aus aktuellem Datum erzeugen
ao Dateien mit gesetztem Archivattribut hinzufgen
ap<Verz> Setzt das Verzeichnis innerhalb eines Archiv
as Archivinhalt synchronisieren
av Authentizit?tsinf. hinzufgen (nur registrierte Version)
av- Authentizit?tsberprfung bergehen
c- Kommentare nicht anzeigen
cfg- Konfiguration nicht einlesen
cl Dateinamen in Kleinschreibung konvertieren
cu Dateinamen in Groáschreibung konvertieren
df L?sche Dateien nach der Archivierung
dh Gemeinsam genutzte Dateien ?ffnen
ds Namenssortierung in progressiven Archiven abschalten
e[+]<attr> Dateien mit bestimmten Attributen aus-/einschlieáen
ed Keine leeren Verzeichnisse hinzufgen
en Ende des Archivs nicht kennzeichnen
ep Verzeichnisnamen ausschlieáen
ep1 Stammverzeichnisnamen ausschlieáen
ep2 Auf vollst?ndige Pfadangabe erweitern
ep3 Auf vollst?ndige Pfadangabe incl. Laufwerksbuchstaben erweitern
f Datei(en) auffrischen
hp[Passwort] Dateien und Header verschlsseln
id[c,d,p,q] Anzeigen/Nachrichten abschalten
ieml[Adr] Archiv per Email versenden
ierr Alle Nachrichten an stderr senden
ilog[Name] Fehler in Datei protokolllieren (nur in der Reg.Vers.)
inul Alle Nachrichten unterdrcken
ioff PC nach Beendigung herunterfahren
isnd Ger?usche anschalten
k Archiv vor Ver?nderung sichern
kb Zerst?rte entpackte Dateien nicht l?schen
m<0..5> Kompressionsmethode(0-keine...3-standard...5-maximal)
mc<Param> Erweiterte Kompressionsparameter festlegen
md<Gr?áe> W?rterbuchgr?áe in KB (64,128,256,512,1024,2048,4096 oder A-G)
ms[Erw;Erw] Folgende Dateitypen nicht komprimieren
n<Datei> Nur angegebene Datei archivieren
n@ Zu archivierende Dateinamen von der Standardeingabe lesen
n@<Liste> Nur Dateien aus Dateiliste archivieren
o+ Vorhandene Dateien berschreiben
o- Vorhandene Dateien nicht berschreiben
oc Das NTFS 'Compressed'-Attribut setzen
os NTFS-Datenstr?me speichern
ow Dateibesitzer und Gruppe speichern/setzen
p[Passwort] Passwort setzen
p- Nicht nach Passwort fragen
r Verzeichnisse rekursiv durchsuchen
r0 Unterverzeichnisse fr Wildcards rekursiv durchsuchen
ri<P>[:<S>] Priorit?t (0-std,1-min..15-max) und Ruhezeit in ms einstellen
rr[N] Wiederherstellungsinf. speichern
rv[N] Rekonstruktions-Archive erzeugen
s[<N>,d,e] Progressive (solid) Archive erstellen
s- Progressive Archivierung abschalten
sfx[name] selbstentpackdendes (SFX) Archiv erzeugen
si[name] Daten vom Standardeingabeger?t (stdin) lesen
t Dateien nach dem Archivieren berprfen
ta<Zeit> Nur Dateien verarbeiten, die nach <Zeit> ge?ndert wurden
tb<Zeit> Nur Dateien verarbeiten, die vor <Zeit> ge?ndert wurden
tk Archivzeit beibehalten
tl Zeit der neusten Datei setzen
tn<Zeit> Nur Dateien neuer als <Zeit> verarbeiten
to<Zeit> Nur Dateien ?lter als <Zeit> verarbeiten
ts<m,c,a>[N] Zeitpunkt der letzten ?nderung (m), der Erstellung (c),
des letzten Zugriffs (a) speichern/setzen
u Dateien erneuern
v Teilarchive mit automatischer Gr?áe erstellen oder alle listen
v<Gr?áe>[k,b] Teilarchive mit Gr?áe=<Gr?áe>*1000 [*1024, *1] erzeugen
vd Laufwerksinhalt vor dem Schreiben eines Teilarchivs l?schen
ver[n] Dateiversionskontrolle [Versionsnummer]
vn Teilarchive nach altem Schema benennen
vp Pause vor jedem Teilarchiv
w<Verz.> Arbeitsverzeichnis angeben
x<Datei> Angegebene Datei ausschlieáen
x@ Auszuschlieáende Dateinamen eingeben
x@<Liste> In Dateiliste angegebene Dateien ausschlieáen
y Alle Fragen mit Ja best?tigen
z<Datei> Archivkommentar aus Datei lesen
Bitte warten ..
Mitglied: Biber
21.05.2006 um 18:39 Uhr
Sorry, Inkognitar,

mein Kurzzzeitgedächtnis verhält sich in letzter Zeit wie ein...Dingens..na, dieses Ding mit den Löschenn..egal..

Also: Rar.exe-Parameter zum Datei-In-Archivdatei-packen heißt "a" und nicht "-a".

Also richtiger wäre dieser Befehl, um z.B. die MeinebatDatei.bat in ein Archiv namens testrar.rar zu kopieren:
$cmd$d:\programme\WinRAR\rar.exe a testrar.rar MeineBatDatei.txt

-oder in Deinem Oneliner-
For %%f in (c:\test\*.rar) Do C:\Programme\WinRAR\rar a %%f %~dpnx0

So, haben wir es jetzt?
Ach so, die Frage, wieso die Packer bei Dir in anderen Verzeichnissen stehen als bei mir:
Hängt davon ab,
- wo denn die Umgebungsvariable ProgramFiles hinzeigt ( schau nach mit "set progr" vom CMD-Prompt; ProgramFiles=C:\Programme oder ähnlich kommt raus)
- ob man/frau das vorgeschlagene Inst-Verzeichnis bestätigt oder ändert.

Gruß
Biber
Bitte warten ..
Mitglied: 30407
21.05.2006 um 21:27 Uhr
Hi, es funktioniert !
jedoch habe ich noch eine letzte Frage :
Und zwar ist bei vielen, dass Winzip bzw. Winrar Verzeichnis anders --> Mein Programm läuft nur auf meinem PC. Daher würde ich gerne erst das Verzeichnis ermitteln und dann erst die Anwendung starten. Jedoch funktiniert der folgende Code nicht. Ich glaube, es liegt an der Variablendeklaration.
<code>
@echo off
set x = dir /s /b \winzip32.exe
set y = dir /s /b \rar.exe
For %%f in (c:\test\*.zip) Do %x% -min -a %%f %~dpnx0
For %%f in (c:\test\*.rar) Do %y% a %%f %~dpnx0 > nul
For %%f in (c:\test\*.zip) Do %y% a %%f %~dpnx0 > nul
<code>
Bitte warten ..
Mitglied: Biber
21.05.2006 um 22:37 Uhr
Na, Inkognitar,

soviel Geduld soll auch belohnt werden... da mach ich noch mal mein Schätzkästchen der Profi-Tricks auf *gg

Ich habe ja vorhin schon geschrieben, dass sich mit
start winzip
-bzw-
start winrar

diese beide Zip-Programme finden lassen, weil sie installiert sind und in der Registry mit Namen und Pfaden eingetragen sind.

Mit diesem Wissen kannst Du folgendes in der Batchdatei schreiben:
01.
.... 
02.
For /f %%i in ('ftype winzip') do Set %%i 
03.
For /f %%i in ('ftype winrar') do Set %%i 
04.
REM Danach steht in der Variablen %winzip% der vollständige Name der WinZip32.exe,; in %WinRar% entsprechend- 
05.
If [%winzip%] == [] goto noWinzipHere 
06.
For %%f in (c:\test\*.zip) Do %WinZip% -min -a %%f %~dpnx0  
07.
Goto :eof 
08.
:noWinZipHere 
09.
If [%winRar%] == [] goto noWinRarHere 
10.
For %%f in (c:\test\*.rar) Do %WinRar% a %%f %~dpnx0  
11.
:noWinRarHere 
12.
echo Kein WinRar und kein WinZip gefunden - Bitte Inkognitar anrufen: 0190-666666
Die beiden Zeilen
set x = dir /s /b \winzip32.exe
set y = dir /s /b \rar.exe
..erfordern eine etwas andere Syntax.
- keine Leerzeichen vor und nach den Gleichheitszeichen
- möglichst nicht x und y nennen. ist zwar erlaubt, aber schwer lesbar und wartbar
- richtiger wäre eine Syntax der Form
for /F %%i in ('dir /s /b \rar.exe') do set winrar=%%i
-----------> ABER: mit DIR suchst Du immer nur auf einem Laufwerk, z.B. C: oder D:
-----------> Das ist der eigentliche Haken - Du weißt ja nicht ob und auf welchem Laufwerk des users WinZip oder WinRar installiert sind.

Der Weg oben ist eleganter... und wenn den Trick nicht weitererzählst, darfst Du ihn gerne nutzen.

Gruß
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Datei Kopieren
gelöst Frage von FragerBatch & Shell17 Kommentare

Hallo Zusammen, ich bekomme es nicht hin ich muss aus einem Ordner (liegt auf einem Server) eine von vielen ...

Batch & Shell
Batch: Loop zum kopieren von Dateien
gelöst Frage von BiffBaffBatch & Shell1 Kommentar

Hallo zusammen, leider bin ich nicht sehr vertraut mit dem erstellen von Batch dateien daher mag die Frage vielleicht ...

Batch & Shell
Batch - Kopieren von Dateien in Userhome
gelöst Frage von BellociBatch & Shell2 Kommentare

Hallo liebe Admins, ich würde sehr gerne einige Dateien unterschiedlichster Form (txt, html, wahrscheinlich in der Zukunft wachsend) in ...

Windows 7
Kopieren was in einer Datei steht (Batch-Datei)
Frage von helmuthelmut2000Windows 71 Kommentar

Hallo, Ich möchte folgendes machen, aber weis nicht genau wie ich das hinbekomme. Ich habe eine Text-Datei wo folgendes ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 18 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement15 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...