Clever-Excel-Forum

Normale Version: Rar-Dateien mittels VBA entpacken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

Zitat:Entpackt wird immer nach:
C:\Users\Adminstrator\Documents\

Was kann man da machen?

ich habe jetzt nur ein Handy, drum als Schuß in's Blaue,
die Speicherordner können eigentlich unter Optionen geändert werden
Hallöchen,

dann packe mal das Zielverzeichnis dazu

Shell "cmd /c""C:\Users\Administrator\Downloads\Z\unrar.exe e C:\Users\Administrator\Downloads\Z\Test.rar C:\Users\Administrator\Downloads\Z\"""
Schön wärs!
Habe ich schon versucht nicht!

Hatte auch mal folgendes Spielchen gemacht. Eine entsprechende bat/cmd Datei geschrieben, die Test.rar entpacken sollten.

Klappte super, die Extraktion geschah beim manuellen klicken auf die bat  wie gewünscht im gleichen Ordner wie Test.rar.

Da dachte ich habs. Also schnell noch den entsprechenden Befehl in VBa reingeschrieben der die Bat dann per Programmaufruf startet.

Pustekuchen. Die Datei wurde wieder nach C:\Users\Administrator\Documents\ entpackt.


Das Dingen nervt und ist für mich eine richtige Nuß. Anderseits hochinteressant. Denn man sieht worauf es ankommt.

Du brauchst gar kein Winrar auf dem Rechner zu haben, die Benutzung der unrar.exe reicht. Alles andere von so einem

Programm: Folklore.
Hallo, :19:

willst Du in 7Zip ein Zielverzeichnis für die zu entpackende Datei angeben, muss der Parameter "-O" angegeben werden (keine Null). :21:

Code:
Option Explicit
Sub Main()
    Shell "C:\Program Files\7-Zip\7z.exe X C:\Temp\Word_Search_Copy.rar -Y -OC:\Temp\Zip\Neu\", vbNormalFocus
End Sub
  • "C:\Program Files\7-Zip\7z.exe" - der Pfad zu meiner 7z.exe
  • "C:\Temp\Word_Search_Copy.rar" - die zu entpackende Rar-Datei
  • "C:\Temp\Zip\Neu\" - das Zielverzeichnis
Die Parameter in 7Zip sind manchmal etwas gewöhnungsbedürftig. "-O" wird angegeben, wenn ein bestimmtes Zielverzeichnis genommen werden soll. Es darf KEIN Leerzeichen zwischen dem Parameter und dem Pfad sein!

Hier noch ein paar Infos.
Hallo Case,
danke für deinen Beitrag, leider funktioniert es bei mir so nicht.

(Vielen Dank auch für den Link!!, werde ich bei Gelegenheit durcharbeiten)


Aber ich habe das Problem gelöst.

Das Problem liegt bei der cmd.exe. Startet man diese  ist
die Voreinstellung für das Verzeichnis (bei mir zumindest) immer
C:\Users\Administrator\Documents

Und genau hier liegt das Problem und auch der Fehler.
Das Verzeichnis muss hier angepasst  werden.

Habe folgendes gemacht
Eine Bat geschrieben und folgende Befehle reingepackt:
cd C:\Z
7z.exe e  Test.rar

also Verzeichnis anpassen im ersten Schritt und im
zweiten entpacken.

Mit dem Aufruf:
Sub Main()
Shell "C:\Z\Lösung.bat"
End Sub

läuft das Ganze über die Bat wie gewünscht.

Und jetzt kommt ihr wieder ins Spiel liebe VBA Gemeinde.
Ich will keine Lösung über Bat.
Wie schaffe ich es die cmd.exe so zu steuern,
das diese das richtige Verzeichnis hat?
Also letztendlich wieder alles über nur einen Shell - Befehl läuft?
Hallo, :19:

ich habe meine Codezeile natürlich getestet - klappt wunderbar. :21:

Was passiert denn bei dir, wenn du die entsprechenden Anpassungen vorgenommen hast?

Ich entpacke schon lange Rar-Dateien mit 7Zip. Lauf 7Zip Hilfe gibt es nur ein Problem - ein altes 7Zip Programm mit einer Rar-Datei, welche mit der neuesten WinRar-Version gepackt wurde.
Hallo Case,

ich glaub dir natürlich, dass es bei dir geht. Kann sein, dass unterschiedliche Computereinstellungen

dafür verantwortlich sind. Und wahrscheinlich noch viele andere Möglichkeiten.

Mir fiel pllötzlich auf, dass wenn ich die cmd.exe auslöse, dort immer ein voreingestellltes Verzeichnis steht.

Genau das wo die Dateien immer entpackt wurden. Das habe ich dann über den Zwischenschritt

einer Bat ausgeglichen. Jetzt versuche ich erstmal an den Befehl zu kommen, dass cmd.exe

das Verzeichnis angibt, in dem die Test.rar gibt. Danach gibt's noch unendliche viele

Möglichkeiten dies alles zu verfeinern.
Unzip in VBA:

Code:
Sub M_snb()
   M_snb_zipex "J:\Python\database\database.zip", "G:\xyz"
End Sub

Sub M_snb_zipex(file, Destination)
    If Dir(file) = "" Then Exit Sub
    With CreateObject("shell.application")
       If Dir(Destination, 16) = "" Then .Namespace(Split(Destination, ":")(0) & ":").NewFolder Mid(Split(Destination, ":")(1), 2)
       .Namespace(Destination).CopyHere .Namespace(file).Items
    End With
End Sub
Goede morgen snb, :19:

het gaat niet om een Zip-bestand, het gaat om RAR. Dat werkt niet. Maar hier is een link naar een landgenoot van jou:

Ron de Bruin :05:
Hallo Case,

übersetzt du uns deinen Beitrag bitte?
Seiten: 1 2 3