Próbuję przechwycić dane wyjściowe programu, a następnie zapisać je w pliku.
Uruchomienie MyFile.exe -args > foo.txt
daje pusty plik. To samo dotyczy MyFile.exe -args > foo.txt 2>&1
. Jeśli uruchomię polecenie jak zwykle MyFile.exe -args
, dane wyjściowe zostaną wyraźnie zapisane w konsoli.
Program jest napisany w C ++ i pisze przy użyciu wprintf_s
. Jeśli to ma znaczenie, wydaje się, że dołącza nowy wiersz do ostatniego wiersza.
Byłbym wdzięczny za wszelkie pomysły, jak to zrobić. Jeśli komuś zależy na odtworzeniu: plik, którego używam, i jego strona GitHub ( raport VirusTotal ).
Odpowiedzi:
Możesz zapisać go do pliku skryptu i przekierować dane wyjściowe do żądanego pliku
na przykład: echo „MyFile.exe -args”> file.sh
następnie spróbuj uruchomić plik skryptu i przenieś dane wyjściowe i błąd pliku do potrzebnego pliku tekstowego
ie) sh file.sh> foo.txt 2> i 1
To zadziała! i zapisze dane wyjściowe, a także błąd pliku wykonywalnego (plik .exe) w osobnym pliku tekstowym.
źródło