Nie można przekierować wyjścia .exe do pliku

4

Próbuję przechwycić dane wyjściowe programu, a następnie zapisać je w pliku.

Uruchomienie MyFile.exe -args > foo.txtdaje 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 ).

Zar
źródło
Czy używasz bash jako zamiennika cmd.exe lub psh?
Hennes,
@Hennes Przepraszamy, miałem na myśli cmd.exe. Od jakiegoś czasu nie korzystałem z systemu Windows, więc terminal jest dla mnie bash :-).
Zar
@Psycogeek: W porządku, możemy wymyślić obejścia. O wiele bardziej interesujące jest to, dlaczego i jak ten plik EXE zachowuje się w ten sposób oraz jak przekierować dane wyjściowe do pliku?
Karan
@Psycogeek Dodanie argumentów po ścieżce nie pomogło, ale dobry pomysł. Tak, pomysł polega na przeanalizowaniu danych wyjściowych w celu wykrycia, które urządzenie zostało usunięte / dodane w danym okresie. Prawdopodobnie można to wykryć w inny sposób (interfejsy API wydają się być prywatne), ale mnie to zainteresowało.
Zar
1
Po wyczyszczeniu tych komentarzy wyszukiwanie pokazuje stackoverflow.com/questions/29000655/… pytanie przepełnienia stosu, które ma podobne. Najwyraźniej można to zmienić, aby działało w ten sposób?
Psycogeek,

Odpowiedzi:

0

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.

Hariramakrishnan
źródło
Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie. Pytanie dotyczy tego, czy wiersz poleceń systemu Windows nie bash
DavidPostill