ShellExecute czy coś innego

0

Witam serdecznie.
Walczę od kilku godzin z ShellExecute i nic mi nie wychodzi. Sprawa jest niby prosta. Mam w buttonie wykonać następującą procedure

Uruchomić 7-zipa z parametrem który będzie tworzył mi plik z nazwą zipa jako data
czyli coś takiego

7z.exe a c:\bckp\"%DATE%_%TIME:~0,2%.%TIME:~3,2%_Backup.7z" C:\plikiwymiany

Plik 7z.exe znajduje się w katalogu c:\Program FIles\7-zip

I za groma nie mogę tego odpalić. Tzn nie mogę odpalić 7z.exe z parametrem "a c:\bckp\"%DATE%_%TIME:~0,2%.%TIME:~3,2%_Backup.7z" C:\plikiwymiany"

To jest prosty soft do robienia backupu pliku o okreslonej godzinie

Dzięki za pomoc.

2

Nie wiem co kombinujesz ale chyba chodzi o to, że ShellExecute nie wywołuje konsoli (cmd) i nie uzyskasz w ten sposób ścieżki typu c:\bckp\02.02.2020_17.50_Backup.7z . Taką ścieżkę i nazwę otrzymasz np. w ten sposób:

ZipFileName:= 'c:\bckp\' + FormatDateTime('dd.mm.yyyy_hh.nn', Now) + '_Backup.7z';
1

W Lazarusie, zamiast zabawy z ShellExecute, skorzystałbym z TProcess – jest wygodny, prosty w obsłudze, wieloplatformowy i daje kontrolę nad uruchomionym programem (można np. odczytywać konsolowy output).

Nie macie czegoś podobnego w Delphi?

1

Dawniej nie było a ostatnio (chyba kilka lat) nie było mi to potrzebne ale szybkie googlowanie też nic wbudowanego w Delphi nie pokazuje ale przy okazji dowiedziałem się że można skorzystać z wersji przeniesionej na Delphi, bo coś takiego istnieje: https://github.com/z505/TProcess-Delphi

0
kAzek napisał(a):

[…] ale przy okazji dowiedziałem się że można skorzystać z wersji przeniesionej na Delphi, bo coś takiego istnieje: https://github.com/z505/TProcess-Delphi

To fork klasy TProcess i całej jej otoczki z modułu Process dla Free Pascala. Można używać. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1