Autor Beitrag
Sahroma
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 66
Erhaltene Danke: 1


Delphi 10 Seattle, Delphi 10.1 Berlin
BeitragVerfasst: Di 01.09.15 11:01 
Hallo zusammen,

ich habe da ein kleines Problem mit dem ShellExecute Befehl. Und zwar schreibe ich für die Firma ein kleines Backup Programm, dass unter anderem ein bestimmten Ordner in .rar packt. Mein Code sieht bisher so aus:

ausblenden Delphi-Quelltext
1:
ShellExecute(0,'open','winRAR.exe'' X:\test.rar X:\BackupTest\*. * 'nil, SW_Hide);					


Das Problem hierbei ist, er erstellt irgendwie die .rar Datei nicht und ich komme nicht dahinter an was das liegen könnte. Das durchsuchen des Forums brachte mich auch nicht wirklich weiter (oder ich übersah etwas^^). Fehlt da etwas oder was ist der Grund?

Gruß
Sahroma

P.S. Das selbe Laufwerk ist nur zu Test Zwecken. ;)
Gammatester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: Di 01.09.15 11:21 
Auf der Kommandozeile funktioniert das auch nicht, sondern man muß zB ein a Kommando angeben, also zB winRAR.exe a test.rar *.* , vielleicht hilft bei Dir dann
ausblenden Delphi-Quelltext
1:
ShellExecute(0,'open','winRAR.exe''a X:\test.rar X:\BackupTest\*. * 'nil, SW_Hide);					


Zuletzt bearbeitet von Gammatester am Di 01.09.15 11:21, insgesamt 1-mal bearbeitet
hathor
Ehemaliges Mitglied
Erhaltene Danke: 2



BeitragVerfasst: Di 01.09.15 11:21 
Command line console (text mode) version - Rar.exe.

Man könnte natürlich rar.txt lesen, was man im WINRAR-Verzeichnis findet...
Alphabetic commands list
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
a   add files to an archive
c   add an archive comment
ch   change archive parameters
cv   convert archives
cw   write an archive comment to file
d   delete files from an archive
e   extract files from an archive, ignoring paths
f   freshen files within an archive
i   find string in archives
k   lock an archive
m   move files and folders to an archive
r   repair a damaged archive
rc   reconstruct missing volumes
rn   rename archived files
rr[N]   add data recovery record
rv[N]   create recovery volumes
s[name]   convert an archive to a self-extracting type
s-   remove SFX module
t   test archive files
u   update files within an archive
x   extract files from an archive with full paths


Folgendes funktioniert problemlos:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button3Click(Sender: TObject);
begin
ShellExecute(0,'open','C:\Program Files (x86)\WinRAR\RAR.exe''a F:\RARtest.rar F:\Text\*.*'nil, SW_Show);
end;

oder so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button5Click(Sender: TObject);
var  strParams,FN : String;
begin
 strParams:= 'a F:\RARtest10.rar F:\Text\*.*';
 FN:= 'C:\Program Files (x86)\WinRAR\Rar.exe';
ShellExecute(Application.Handle,'OPEN',PWChar(FN), PWChar(strParams),NIL, SW_Hide);
end;


Zuletzt bearbeitet von hathor am Di 01.09.15 14:50, insgesamt 1-mal bearbeitet
Sahroma Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 66
Erhaltene Danke: 1


Delphi 10 Seattle, Delphi 10.1 Berlin
BeitragVerfasst: Di 01.09.15 11:59 
Danke euch beiden hat mir auf jeden Fall geholfen. Ich habe nun den Code ein wenig modifiziert um noch ein Datum an den Dateinamen zu hängen. An die rar.text habe ich nicht gedacht. :oops:

ausblenden Delphi-Quelltext
1:
ShellExecute(0,'open','winRAR.exe''a -ep1 -s -inul -agYYYY-MM-DD X:\test.rar X:\BackupTest\*. * 'nil, SW_Hide);					


Und hier tauchte ein kleines Problem auf und zwar hängt er das Datum direkt hinter test (ohne Leerzeichen). Wie füge ich dazwischen ein Leerzeichen ein?
hathor
Ehemaliges Mitglied
Erhaltene Danke: 2



BeitragVerfasst: Di 01.09.15 12:59 
So geht's bei mir: (" = SHIFT 2)
ausblenden Delphi-Quelltext
1:
 strParams:= 'a -ep1 -s -inul -agYYYY-MM-DD F:\RARtest16" ".rar F:\Text\*.*';					
Sahroma Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 66
Erhaltene Danke: 1


Delphi 10 Seattle, Delphi 10.1 Berlin
BeitragVerfasst: Di 01.09.15 14:07 
user profile iconhathor hat folgendes geschrieben Zum zitierten Posting springen:
So geht's bei mir: (" = SHIFT 2)
ausblenden Delphi-Quelltext
1:
 strParams:= 'a -ep1 -s -inul -agYYYY-MM-DD F:\RARtest16" ".rar F:\Text\*.*';					


Super danke dir hat einwandfrei funktioniert. :)