7zip binarka - przekierowanie wyjścia do pliku

0

Witajcie,

Moim problemem jest przekierowanie wyjścia z pliku binarnego 7za.exe do pliku txt. To, co wpisuję w cmd wygląda tak:
7za.exe h "C:\Users\Mikołaj\Desktop\plik.7z" -so >"C:\Users\Mikołaj\Desktop\test.txt"
W moim zamyśle 7za.exe miałoby po prostu wypisać CRC32 pliku plik.7z do test.txt. Po wywołaniu całości test.txt jest nadal pusty, natomiast bez parametru -so wypisywanie działa, ale do konsoli. Ktoś ma pomysł jak to rozwiązać? Z góry dziękuję.

0

Spróbuj:
7za.exe h "C:\Users\Mikołaj\Desktop\plik.7z" -so >"C:\Users\Mikołaj\Desktop\test.txt" 2>&1

0

Niestety, txt dalej puste.

0

Problem rozwiązany - prawidłowo powinno się to wywoływać tak:
7za.exe h "C:\Users\Mikołaj\Desktop\file.7z" > "C:\Users\Mikołaj\Desktop\test.txt"
I wówczas wszystko działa. Kolejny problem pojawia się, gdy chcę zrobić wszystko jak wyżej, ale zaimplementowane do C++. Robię to w następujący sposób:

SHELLEXECUTEINFO seinfo;
ZeroMemory(&seinfo, sizeof(SHELLEXECUTEINFO));
seinfo.cbSize = sizeof(SHELLEXECUTEINFO);
seinfo.fMask = SEE_MASK_NOCLOSEPROCESS;
seinfo.lpDirectory = TEXT(Is64BitWindows() ? (ExePath() + "\\bin\\7zip\\x64\\").c_str() : (ExePath() + "\\bin\\7zip\\").c_str()); //lokalizacja 7zip w zaleznosci od ilosci bitow w systemie
seinfo.lpFile = TEXT("7za.exe");
seinfo.lpParameters = TEXT("h C:\\Users\\Mikołaj\\Desktop\\file.7z > C:\\Users\\Mikołaj\\Desktop\\test.txt"); //parametry dla 7zip
seinfo.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&seinfo);

Niestety, ale wszystko wywołuje się, ale znów wypisuje się do konsoli zamiast do pliku txt. Jest to o tyle dziwne, że w obydwu przypadkach podaje te same argumenty, tyle że dla cmd lub ShellExecute, a działa zupełnie inaczej. Co może być tego przyczyną?

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