1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Ordner aus dem Namen des Archivs erstellen

Dieses Thema im Forum "Visual Basic, Visual Basic for Applications (VBA) " wurde erstellt von pramort, 2. Juni 2017.

  1. pramort

    pramort New Member

    Hallo zusammen!

    Könnte mir bitte jemand mit der folgenden Aufgabe helfen? Ich muss bestimmte Dateien aus einem Archiv in einen Ordner entpacken, dessen Name genau so ist wie der Name des Archivs. Also zuerst muss der Ordner mit dem Namen des Archivs angelegt werden und dann eine bestimmte Datei in diesen Ordner kopiert werden.

    Ich benutze eine bat-Datei mit dem folgenden Inhalt:

    @echo off
    for %%i in (*.zip) do unzip32 %%i *.jpg

    Im Moment kann ich eine Datei nur entpacken. Aber wie erstelle ich einen Ordner, der genau so heißt wie das Archiv? Dabei muss ich beachten, dass es mehrere Tausende Archive sind..

    Für jede Hilfe bin ich euch sehr dankbar!
  2. German

    German Well-Known Member c-b Experte

    Batch hat ja eigentlich nix mit VB(A) zu tun. Naja, egal ...
    Ungetestet etwa so:
    Code:
    @echo off
    for %%i in (*.zip) do (
      md "%%~ni"
      unzip32 "%%~i" "%%~ni\*.jpg"
    )
    Falls das so noch nicht funktioniert, verlinke mal auf die Kommandozeilenreferenz von diesem unzip32.
  3. pramort

    pramort New Member

    Sorry, vielleicht habe ich das richtige Forum übersehen, wo man diese Frage einstellen kann. Ich dachte, das könnte man vielleicht auch mit VBS lösen.. Danke dir @German für deine Hilfe!! Ich werde den Code ausprobieren.
  4. pramort

    pramort New Member

    Leider wird Folgendes angezeigt:

    e:\MT\test>test.bat
    Archive: 1954741e-fc7a-4128-9a74-121e2d17a7c2.zip
    caution: filename not matched: 1954741e-fc7a-4128-9a74-121e2d17a7c2/*.jpg

    Im Archiv liegt eine Datei mit .jpg. @German könntest du mir bitte einen Tipp geben, weshalb die jpg-Datei nicht gefunden wird? Danke schön!
  5. German

    German Well-Known Member c-b Experte

    Tja, wie schon gesagt, ich kenne dieses unzip32 Tool nicht. Keine Ahnung von wo du es heruntergeladen hast und keine Ahnung welche Kommandozeilenoptionen es dafür gibt. Genau das war der Grund, warum ich dir geschrieben hatte, dass du hier mal auf eine Seite verlinken sollst, wo sich diese Informationen finden ...
  6. pramort

    pramort New Member

    Kommandozeilenoptionen.JPG
    @German vielleicht hilft dieser Screenshot? Allerdings konnte ich rauskriegen, wie ich bestimmte Dateien in einen Ordner entpacken kann:

    Code:
    @echo off
    for %%i in (*.zip) do (
      md "%%~ni"
      unzip32 %%i *.jpg -d "%%~ni"
    )
    Jetzt habe ich folgendes Problem.. Ich will bestimmte Archive nur dann entpacken, wenn ein Ordner mit dem Namen des Archivs zuvor angelegt wurde (siehe Code oben). Wenn es keinen solchen Ordner gibt, dann soll nichts entpackt werden. Ich habe an Folgendes gedacht:

    Code:
    @echo off
    for %%i in (*.zip) do (
      unzip32 %%i *.jpg -d "%%~ni"
    )
    Allerdings scheint die Option "-d" auch den Befehl zum Erstellen eines Ordners zu enthalten, obwohl in der Beschreibung steht, dass bei "-d" Dateien in einen vorhandenen Ordner entpackt werden. @German hast du vielleicht irgendeine Idee dazu? Würde dir sehr dankbar sein!
  7. German

    German Well-Known Member c-b Experte

    Wahrscheinlich so:
    if exist "%%~ni\" unzip32 %%i *.jpg -d "%%~ni"
    pramort gefällt das.
  8. pramort

    pramort New Member

    @German VIELEN VIELEN DANK!