Tar.gz mit vb entpacken um csv Datein einzulesen

Excel 2000

Hi,

ich hab hier einige .tar.gz Datein, in denen .csv Datein gepackt sind.

ich brauche jetzt einen Befehl, mit dem ich diese Daten entpacken kann.

das unzipen klappt schon!

befehl = "gunzip " & pfad & datei_tar_gz
Shell (befehl)

damit hab ich aus .tar.gz .tar Datein gemacht!

unter Dos komm ich jetzt auch weiter

tar xf Datein.tar entpackt schön die csv Datein

es ist mir aber bisher nicht gelungen den Syntax unter VB so zu schreiben, dass es funktioniert.
Als Hauptproblem sehe ich darin, dass ich nicht weiß, wie ich tar sagen kann, wohin die Daten sollen!
das zweite Problem ist, dass ich die Fehlermeldung nicht sehen kann, da das „Dos-Fenster“ immer gleich geschlossen wird!

befehl = "tar xfvz " & pfad & datei_tar 'tar xfvz e:\test\test.tar
Shell (befehl)

ist grad mein aktueller Code, aber der funktioniert nicht!
er macht zwar irgendwas (Festplattengeräusche sind da), aber ich finde die entpackten Dateien nicht!

also mein Traum wäre ein Befehl, der die tar-Daten aus pfad1 in pfad2 entpackt!

PS: den Umweg über die befehl Variable geh ich um den Syntax kontrollieren zu können!

Hallo Zondan,

klicke mal auf Start dann ausführen gib dort cmd ein!
Danach versuche mal die Datei wie hier gepostet zu entpacken!
Was zeigt dir denn die Konsole an?

MfG Alex

ok,
hab wieder zu viel Text ums Problem geschrieben!

also in der Dos-Box funktioniert:

tar xf datei.tar

im Programm versuch ich das gleiche mit

befehl = "tar xf " & pfad & datei_tar
Shell (befehl)

pfad endet mit \
und in datei_tar steht der Dateiname mit Endung tar!

tar wird aufgerufen (ganz kurz viele Fenster in der Taskleiste) es passiert aber nichts!

das ander Problem ist, wenn ich in der Dos-Box in einem anderen Verzeichnis schreibe
z.B. C:\

tar xf e:\datei.tar

dann wird das Verzeichnis nach c:\ entpackt!

ich würde das Ziel aber gern vorgeben!
auch das Argumente C (in der Dos-Box) scheint nicht so zu funktionieren wie ich mir das denke

tar -x-f-C=D: e:\datei.tar

führt zu einem ungültigen Argument wie auch d:\ und d:*.*

schonmal vielen Dank für Hilfen!

Hallo,

ok,
hab wieder zu viel Text ums Problem geschrieben!

also in der Dos-Box funktioniert:

tar xf datei.tar

In welchem Directory hast du dich denn da befunden?

im Programm versuch ich das gleiche mit

befehl = "tar xf " & pfad & datei_tar
Shell (befehl)

Und in welchem Verzeichnis warst du da gewesen?

pfad endet mit \
und in datei_tar steht der Dateiname mit Endung tar!

Ok, das koennte man besser loesen :wink:
gut, kann es vlt. sein das der Pfad zur Tar Datei falsch ist?

tar wird aufgerufen (ganz kurz viele Fenster in der
Taskleiste) es passiert aber nichts!

Sicher das tar aufgerufen wurde, oder kann es sein das die Meldung besagte das tar nicht gefunden wurde?

das ander Problem ist, wenn ich in der Dos-Box in einem
anderen Verzeichnis schreibe
z.B. C:\

tar xf e:\datei.tar

dann wird das Verzeichnis nach c:\ entpackt!

Richtig. Gehe ich mal davon aus das sich die Tar.exe ? Auf dem LW C befindet?

ich würde das Ziel aber gern vorgeben!

Dazu faellt mir spontan folgende Lösung ein. Tar.exe suchen, dann an die stelle kopieren wo die Files hin sollen. Danach in das Verzeichnis wechseln und von da aus dann tar … aufrufen. Nach dem entpacken einfach die tar.exe löschen und gut ist :smile:

auch das Argumente C (in der Dos-Box) scheint nicht so zu
funktionieren wie ich mir das denke

tar -x-f-C=D: e:\datei.tar

Ich weiss jetzt net was jeder Parameter bedeutet :confused:
Auch habe ich die tar.exe net auf meinem Rechner :s

Soweit wie ich das mal ueberflogen habe, entpackt tar die Files dorthin, von wo aus das Tar File aufgerufen wurde!

Aber schau mal hier nach. Da sind die Spezifikationen nochmals aufgefuehrt :smile:

http://www.royklinge.de/cms/front_content.php?idcat=42

führt zu einem ungültigen Argument wie auch d:\ und d:*.*

schonmal vielen Dank für Hilfen!

MfG Alex

tar xf datei.tar

In welchem Directory hast du dich denn da befunden?

e:\test\ also in dem in dem die tar liegt, die entpackten Daten liegen dann im gleichen Verzeichnis

befehl = "tar xf " & pfad & datei_tar
Shell (befehl)

Und in welchem Verzeichnis warst du da gewesen?

tja, in dem, das VBasic annimmt, wobei pfad=„e\test“ war und daten_tar=„test.tar“

Sicher das tar aufgerufen wurde, oder kann es sein das die
Meldung besagte das tar nicht gefunden wurde?

eigentlich schon, den wenn ich versuche z.B. tarr auszuführen, bekomm ich gleich die Meldung „Datei nicht gefunden“

Richtig. Gehe ich mal davon aus das sich die Tar.exe ? Auf dem
LW C befindet?

jep, genau unter c:\windows\ dann greift nämlich die Path Funktion und es funktioniert immer (naja zumindest unter DOS)

Danach in das Verzeichnis wechseln und von da aus dann tar …
aufrufen. Nach dem entpacken einfach die tar.exe löschen und
gut ist :smile:

mach ich von mir aus auch, aber wie wechsel ich unter VB das Arbeitsverzeichnis?
die Idee hatte ich auch schon, bin aber auf keinen grünen Zweig gekommen!

Danke nochmals

tar xf datei.tar

In welchem Directory hast du dich denn da befunden?

e:\test\ also in dem in dem die tar liegt, die entpackten
Daten liegen dann im gleichen Verzeichnis

befehl = "tar xf " & pfad & datei_tar
Shell (befehl)

Und in welchem Verzeichnis warst du da gewesen?

tja, in dem, das VBasic annimmt, wobei pfad=„e\test“ war und
daten_tar=„test.tar“

Sicher das tar aufgerufen wurde, oder kann es sein das die
Meldung besagte das tar nicht gefunden wurde?

eigentlich schon, den wenn ich versuche z.B. tarr auszuführen,
bekomm ich gleich die Meldung „Datei nicht gefunden“

Gut, das besagt, das entweder das Tar file nicht gefunden wurde oder halt die Tar.exe!

Richtig. Gehe ich mal davon aus das sich die Tar.exe ? Auf dem
LW C befindet?

jep, genau unter c:\windows\ dann greift nämlich die Path
Funktion und es funktioniert immer (naja zumindest unter DOS)

Ja aber dann sollte es glaube auch unter VB funktionieren!
Aber selbst wenn dann würden deine Daten unter C:\Windows liegen und das wollen wir ja nicht oder ?

Danach in das Verzeichnis wechseln und von da aus dann tar …
aufrufen. Nach dem entpacken einfach die tar.exe löschen und
gut ist :smile:

mach ich von mir aus auch, aber wie wechsel ich unter VB das
Arbeitsverzeichnis?

Ganz einfach :smile:

rivate Declare Function SetCurrentDirectory \_
 Lib "kernel32" Alias "SetCurrentDirectoryA" \_
 (ByVal lpPathName As String) As Long

SetCurrentDirectory(DeinPfad)

die Idee hatte ich auch schon, bin aber auf keinen grünen
Zweig gekommen!

Also, als kleine Zusammenfassung!
Du kopierst Dir die Tar.exe oder wie sie heisst, dorthin wo die Files später extrahiert werden sollen. Danach wechselst du in das Verzeichnis, extrahierst die Daten. Danach löscht die Tar.Exe wieder.
Das kopieren des Files kannst du via FileCopy machen :wink:

Probiere es mal und poste dann mal deinen Source. ich schau dann nochmal drueber :wink:

Danke nochmals

Nichts zu danken :smile:

MfG Alex

also mein Traum wäre ein Befehl, der die tar-Daten aus pfad1
in pfad2 entpackt!

Hi Zondan,

probiers mal so:

Sub tt()
Dim pfad As String
ChDrive „C“
ChDir „c:\ziel“
pfad = „c:\quelle“
S = Shell("c:\programm\tar.exe -xf " & pfad & „daten.tar“, vbMaximizedFocus)
End Sub

Gruß
Reinhard

Ja aber dann sollte es glaube auch unter VB funktionieren!
Aber selbst wenn dann würden deine Daten unter C:\Windows
liegen und das wollen wir ja nicht oder ?

genau:

Ganz einfach :smile:

Private Declare Function SetCurrentDirectory _
Lib „kernel32“ Alias „SetCurrentDirectoryA“ _
(ByVal lpPathName As String) As Long

irgendwie klappt das nicht, Excel scheint das nicht als neue Function zu erkennen!

Hier mal mein momentaner code
es ist erstmal der testcode, verbessern kann man da sicher noch einiges, aber erstmal soll er laufen!

Diese Sub kopiert die Daten die größer als 180kB sind von pfad nach pfad\cop , dann werden die tar.gz mit gunzip entpackt

Private Sub CommandButton1\_Click()
pfad = Cells(1, 2)
Columns("E:h").ClearContents
If Not Dir(pfad & "cop\*.\*") = "" Then Kill (pfad & "cop\*.\*")
datei\_tar\_gz = Dir(pfad & "\*.tar.gz")
Cells(1, 5) = "Name"
Cells(1, 6) = "Name ohne gz"
Cells(1, 7) = "Größe"
Do
 größe = VBA.FileLen(pfad + datei\_tar\_gz)
 If größe \> 180000 Then
 anzahl = anzahl + 1
 datei\_tar = Left(datei\_tar\_gz, Len(datei\_tar\_gz) - 3)
 Worksheets(1).Cells(anzahl + 1, 7) = größe
 Worksheets(1).Cells(anzahl + 1, 6) = datei\_tar
 Worksheets(1).Cells(anzahl + 1, 5) = datei\_tar\_gz
 FileCopy pfad & datei\_tar\_gz, pfad & "cop\" & datei\_tar\_gz
 befehl = "gunzip " & pfad & "cop\" & datei\_tar\_gz
 Shell (befehl)
 End If
 datei\_tar\_gz = Dir
Loop Until datei\_tar\_gz = ""
Cells(1, 8) = anzahl

bis hierher klappt es wunderbar!
zum Testen hab ich das Programm hier getrennt! (der erste Teil läuft ne weile!)

Sub ddd()
anzahl = Cells(1, 8)
pfad = Cells(1, 2) & "cop\"
'SetCurrentDirectory (pfad) 'der Befehle geht noch nicht
For x = 1 To anzahl
 datei\_tar = Worksheets(1).Cells(x + 1, 6)
 datei\_tar\_gz = Worksheets(1).Cells(x + 1, 5)
 befehl = "tar xf " & datei\_tar --------hier ist wohl der Fehler
 Shell (befehl)
Next
End Sub

Gruß Zondan

Hi Zondan,

probiers mal so:

Sub tt()
Dim pfad As String
ChDrive „C“
ChDir „c:\ziel“
pfad = „c:\quelle“
S = Shell("c:\programm\tar.exe -xf " & pfad & „daten.tar“,
vbMaximizedFocus)
End Sub

Hi,
funktioniert leider nicht, wobei wenn ich im dos Fenster:

C:\ziel>tar.exe -xt e:\mess\datei.tar

eingebe werden die Daten richtig nach c:\ziel\ entpackt!

funktioniert leider nicht, wobei wenn ich im dos Fenster:

C:\ziel>tar.exe -xt e:\mess\datei.tar

eingebe werden die Daten richtig nach c:\ziel\ entpackt!

Hallo Zondan,

welcher Pfad wird angezeigt und welcher steht in C:\tar.txt ?

Sub Dostest()
Dim S
Close
Open „C:\tar.bat“ For Output As #1
Print #1, „dir *.xyz > c:\tar.txt“
Close
S = Shell(„C:\tar.bat“)
End Sub

Sub vbatest()
MsgBox CurDir
End Sub

Gruß
Reinhard

Hallo Zondan,

Excel-Vba von 2000 hat zwar Elemente von VB 6.0, sage bitte nicht VB wenn du Excel-Vba meinst.

Benutze unbedingt Optin Explicit (im Editor Extras–Optionen–Variablendeklaration erforderlich)

Für Dritte ist es leichter Fehler zu finden die sie auch sehen können.

pfad = Cells(1, 2)

ist deshalb zum Testen sehr schlecht, viel besser ist es so:

pfad = „H:\test“

Wenn die Prozedur dann mal läuft kannst du dann ja wieder Zellwrte verwursten.

Private Declare Function SetCurrentDirectory _
Lib „kernel32“ Alias „SetCurrentDirectoryA“ _
(ByVal lpPathName As String) As Long

irgendwie klappt das nicht, Excel scheint das nicht als neue
Function zu erkennen!

Funktioniert problemlos unter XL2000, siehe nachstehenden Code.

Hier mal mein momentaner code

Den schauen ich mir erst an wenn du das von mir o.g. getan hast und den verbesserten Code erneut postest.

es ist erstmal der testcode, verbessern kann man da sicher
noch einiges, aber erstmal soll er laufen!

Richtig, deshalb Option Explicit und direkte pfadangabe um unnötige Fehler und Zeitverlust dadurch zu vermeiden.

Gruß
Reinhard

Option Explicit

Private Declare Function SetCurrentDirectory _
Lib „kernel32“ Alias „SetCurrentDirectoryA“ _
(ByVal lpPathName As String) As Long

Sub tt()
Dim Pfad As String, Merker As String
Merker = CurDir
If Dir(„c:\temp2/nul“) = „“ Then MkDir „c:\temp2“
Pfad = „C:\temp2“
SetCurrentDirectory (Pfad)
MsgBox CurDir
ChDrive Left(Merker, 1)
ChDir Merker
MsgBox CurDir
End Sub

Hallo Zondan,

Hi Zondan,

probiers mal so:

Sub tt()
Dim pfad As String
ChDrive „C“
ChDir „c:\ziel“
pfad = „c:\quelle“
S = Shell("c:\programm\tar.exe -xf " & pfad & „daten.tar“,
vbMaximizedFocus)
End Sub

Hi,
funktioniert leider nicht, wobei wenn ich im dos Fenster:

C:\ziel>tar.exe -xt e:\mess\datei.tar

Kann auch nicht gehen!
Schau dir das doch mal genau an!
Es wird die Datei tar.exe aus dem Ordner c:\Ziel aufgerufen.
In Reinhard sein Demo, versucht er sie aber aus c:\Programm" aufzurufen!
Du musst den Pfad zur Tar.exe schon richtig angeben!
Aber dann hast du immernoch das Problem, das dann die Daten nach dem Verzeichnis entpackt werden!

eingebe werden die Daten richtig nach c:\ziel\ entpackt!

MfG Alex

Hallo

irgendwie klappt das nicht, Excel scheint das nicht als neue
Function zu erkennen!

Du musst auch die API bekannt machen!
Deswegen oben

Option explicit '

rein.



> Hier mal mein momentaner code  
> es ist erstmal der testcode, verbessern kann man da sicher  
> noch einiges, aber erstmal soll er laufen!  
>   
> Diese Sub kopiert die Daten die größer als 180kB sind von pfad  
> nach pfad\cop , dann werden die tar.gz mit gunzip entpackt  
>   
>   
> 
>     
> Private Sub CommandButton1\_Click()
> pfad = Cells(1, 2)
> Columns("E:h").ClearContents
> If Not Dir(pfad & "cop\*.\*") = "" Then Kill (pfad & "cop\*.\*")
> datei\_tar\_gz = Dir(pfad & "\*.tar.gz")
> Cells(1, 5) = "Name"
> Cells(1, 6) = "Name ohne gz"
> Cells(1, 7) = "Größe"
> Do
> größe = VBA.FileLen(pfad + datei\_tar\_gz)
> If größe \> 180000 Then
> anzahl = anzahl + 1
> datei\_tar = Left(datei\_tar\_gz, Len(datei\_tar\_gz) - 3)
> Worksheets(1).Cells(anzahl + 1, 7) = größe
> Worksheets(1).Cells(anzahl + 1, 6) = datei\_tar
> Worksheets(1).Cells(anzahl + 1, 5) = datei\_tar\_gz
> FileCopy pfad & datei\_tar\_gz, pfad & "cop\" &
> datei\_tar\_gz
> befehl = "gunzip " & pfad & "cop\" & datei\_tar\_gz
> Shell (befehl)
> End If
> datei\_tar\_gz = Dir
> Loop Until datei\_tar\_gz = ""
> Cells(1, 8) = anzahl
> 
>   
> bis hierher klappt es wunderbar!  
> zum Testen hab ich das Programm hier getrennt! (der erste Teil  
> läuft ne weile!)




> Sub ddd()
> anzahl = Cells(1, 8)
> pfad = Cells(1, 2) & "cop\"
> 'SetCurrentDirectory (pfad) 'der Befehle geht noch nicht
> For x = 1 To anzahl
> datei\_tar = Worksheets(1).Cells(x + 1, 6)
> datei\_tar\_gz = Worksheets(1).Cells(x + 1, 5)
> befehl = "tar xf " & datei\_tar --------hier ist wohl
> der Fehler
> Shell (befehl)
> Next
> End Sub

SetCurrentDirectory ist eine API und du musst du erst wie oben beschrieben bekannt machen! Desweiteren fällt mir bei der Zuweisung an Befehl folgendes auf!

Werden Parameter nicht mit - vornweg aufgerufen?
Schreibe mal lieber tar.exe anstatt nur tar
Welcher Wert steht denn in datei\_tar drinnen! 
Bevor du das shell Kommando ausführst, so lasse dir den Befehl mal anzeigen , via Msgbox befehl. Was steht denn da drinnen?
Passt dann die Anzeige?

MfG Alex

C:\ziel>tar.exe -xt e:\mess\datei.tar

eingebe werden die Daten richtig nach c:\ziel\ entpackt!

Hallo Zondan,

fiel mir vorhin schon auf, „>“ ist ein Umlenkungszeichen für Dos.
Von daher kann ich ga nicht glauben daß dein befehl, so wie er dasteht funktioniert hat.

Bei Aufruf in Dos von:

tar.exe -xt e:\mess\datei.tar > c:\tar.txt

wird das Ergebnis, naja eher der Rückgabewert oder beschreibung des Vorgangs, dieses Programmaufrufs in die datei c:\tar.txt geschrieben.

„>>“ anstatt „>“ bedeutet Anhängen des Eintrags.

Umgelenkt/umgeleitet wird dabei die Bildschirmanzeige.
Dummerweise kann man dies wohl nicht in jedem Fall nutzen um in der Txt-datei nachzuschauen was denn Dos in den kurz aufblitzenden Fenster n angezeigt hätte.

Wenn ich den Dosbefehl benutze
xcopy a.txt b.txt > Kopier.txt
müßte m.W. in der kopier.txt stehen

xcopy a.txt b.txt
und
Datei nicht gefunden

In deinem Fall wurde Kopier.txt bzw. tra.txt zwar angelegt, blieb aber leider leer.

Was ich damit letztllich auch erfragen möchte, bist du dir völlig sicher daß dieser Dosbefehl:

C:\ziel>tar.exe -xt e:\mess\datei.tar

in genau dieser Schreibweise funktioniert hat?

Und was genau meinst mit Dos-Fenster wo du das eingibst?

Start–Ausführen–befehl sicher nicht.

Rufst du über Start–Ausführen die cmd.exe auf?

Wenn dem so sein sollte, könnte ja durch die cmd.exe ein ganz anderes Verzeichnis das aktuelle sein als bisher angenommen.

Irgendwie kann es doch gar nicht sein daß man 2008 noch an irgendwelchen Pfaden scheitert *grübel*

Andererseits, ich halte mich bei der namensvergabe für dateien verzeichnisse nahezu immer noch an die alte 8.3 Regel.

Sicher, Office/Windows kennt inzwischen lange Dateinamen usw., aber halt nicht zu 100,000 %, sondern halt paar Pöngs weniger, das bedeutet, zwangsläufig gibt es deshalb Ärger, egal namenslänge oder Sonderzeichen wie Leerzeichen im Namen o.ä. Also vermeide ich das mir noch unnötigen Ärger aufzuhalsen.

Und ein gut durchdachtes Ordnersystem benötigt keine langen Dateinamen wie

Bild das ich machte als ich von A > B fuhr während Deutschland gegen Polen 2:3 gewann und anschließend der Himmel voller *** war.jpg

-)) Ich kanns halt nicht abschütteln, wenn jmd. hier nachfragt daß diese Datei z.B. nicht gefunden wird, so ist mein erster Augenmerk augenblicklich auf > : ? *

Gruß
Reinhard

Juhu, danke, das funktioniert schon mal!

Sub Dostest() ' klappt!!!!!!!!
Dim S
ChDrive "C"
ChDir "c:\ziel"
Close
Open "C:\tar.bat" For Output As #1
Print #1, "tar xf " & pfad & datei.tar
Close
S = Shell("C:\tar.bat")
End Sub

die Datei.tar von Pfad wird nach c:\ziel entpackt!
den Rest der batch werde ich hoffentlich selber hinbekommen, batch Dateien selber schreiben ist schon ein paar Jahre her!

das hat mir auch geholfen!!!

Sub vbatest()
MsgBox CurDir
End Sub

endlich weiß ich wo Excel grad arbeitet!

Hi,
da die tar.exe in c:\windows liegt muß man den pfad dahin nicht angegeben, da es da eine path Anweisung für gibt (kA ob die heute noch in der autoexec.bat drin steht) auf jeden fall schaut Dos erst im aktuellen Verzeichnis und dann in den Verzeichnissen, die mit path angegeben wurden nach der .exe Datei und führt sie dann aus!
(zumindest, wenn ich das aus learning by doing so richtig gelernt habe)

PS: path steht zumindest unter Vista nicht mehr in der autoexec, aber es geht trotzdem!

C:\ziel>tar.exe -xt e:\mess\datei.tar

Danke für die ausführliche Erklärung, aber das war mir schon klar, ich hab in diesem Fall die komplette Zeile aus dem Dos-Fenster (damit meine ich immer Start -> Ausführen -> cmd, hoffe das ist so richtig!) abgeschrieben, da immer weider die Frage kam wo ich den das schreiben würde!

nach meinem kurzen Test unterstütz tar die Umlenkung mit „>“ nicht, klappt das nicht nur bei reinen Dos Befehlen?

ok, das hab ich jetzt auch lauffähig bekommen!

Option Explicit

Private Declare Function SetCurrentDirectory _
Lib „kernel32“ Alias „SetCurrentDirectoryA“ _
(ByVal lpPathName As String) As Long

Sub tt()
Dim Pfad As String, Merker As String
Merker = CurDir
If Dir(„c:\temp2/nul“) = „“ Then MkDir „c:\temp2“
Pfad = „C:\temp2“
SetCurrentDirectory (Pfad)
MsgBox CurDir
ChDrive Left(Merker, 1)
ChDir Merker
MsgBox CurDir
End Sub

option explicit verwende ich meist erst, wenn ich aus der Testphase raus bin, da ich beim umschrieben sonst dauern schauen muß als was ich die Variable deklariert hab!
zur Kontrolle verwende ich (bei den max 20 Zeilen Code die solche Test meist haben) das Lokal Fenster, da stehen dann alle verwendeten Variablen der Sub/Funktion aufgelistet drin, mit ihrem Inhalt und dem Typ (so spart man sich das anlegen von Überwachungsausdrücken)

Also „option explicit“ steht bei mir später über jedem Code, nur halt am Anfang nicht!

Den vollständigen Code schreib ich dann rein, wenn er hoffentlich demnächst läuft! (oder wenn ich noch Hilfe benötige)

Hi,

Sub vbatest()
MsgBox CurDir
End Sub

endlich weiß ich wo Excel grad arbeitet!

und wenn Du den Pfad mal ‚verbiegen‘ möchtest …

/t/vb6-pfadprobleme/4627133/2

Gruß Rainer

Hi,

wegen option explicit siehe anderer Post, (oder kurz, wird von mir normalerweise erst nach der Testphase eingefügt)

Werden Parameter nicht mit - vornweg aufgerufen?

also unter dos war das egal, im jetzt laufenden Programm geht es auch ohne

Schreibe mal lieber tar.exe anstatt nur tar

sucht dos nicht eh nur nach .exe .bat (und anderen ausführbaren) Dateien? in meinen alten Dos zeiten hab ich nie .exe schreiben müssen.

Welcher Wert steht denn in datei_tar drinnen!

datei_tar=„dateiname.tar“
(in datei_tar_gz steht "dateiname.tar.gz)

Bevor du das shell Kommando ausführst, so lasse dir den Befehl
mal anzeigen , via Msgbox befehl. Was steht denn da drinnen?

das seh ich schon im logal Fenster, da ich mit Einzelschritt durchgehe (bei größeren Programmen setz ich dann Stopmarken)

So, jetzt hab ich hoffentlich alles beantwortet, ich bedanke mich hiermit nochmals für eure nette Hilfe!
Jetzt versuch ich erstmal selber wieder etwas weiter zu kommen!
Den fertigen Code werde ich dann auch noch hier reinstellen!