2016-07-27 47 views
0

Obwohl ich einige relevante Fragen wie Displaying Windows command prompt output and redirecting it to a file und How do I echo and send console output to a file in a bat script? finden, konnte ich nicht mein Problem beheben. Ich arbeite unter Windows   XP und einige Skripts mit einer Batch-Datei, die STDIN und STDOUT Griffe verwendet.Handle Windows Eingabeaufforderung Eingabe von Tastatur und Display-Ausgabe und auch umleiten es in eine Datei?

Grundsätzlich möchte ich die Protokolldatei der Eingabeaufforderung speichern. Dies ist mit "echo >> log.txt" in einer Batch-Datei möglich. Dadurch werden jedoch nicht die Ausgaben gespeichert, die als Ergebnis der Skriptdatei generiert wurden. Also habe ich an der Eingabeaufforderung cmd selbst versucht als D:> file.bat> "dir_path/log.txt". Erneut speichert dieser Befehl das STDOUT in log.txt am angegebenen Speicherort. Da ich einige Benutzereingaben erhalten muss, d. H. Das STDIN-Handle zu verwenden, wie erreiche ich dies zusätzlich zum Speichern der Ausgaben von Eingabeaufforderungen in einer separaten Datei?

+0

Ich habe diese [Artikel] verwendet (https://blogs.msdn.microsoft.com/toub/2006/05/03/low-level-mouse-hook-in-c/) zu erstellen [this] (https://github.com/npocmaka/batch.scripts/blob/master/hybrids/.net/c/mouseSniffer.bat). Sie können es als Referenz verwenden und den [Low level keyboard hook] überprüfen. (https://blogs.msdn.microsoft.com/toub/2006/05/03/low-level-keyboard-hook-in-c/) um Keylogger zu erstellen. – npocmaka

Antwort

0

Die Antwort ist einfach:

@echo off 
    set /p answ1=Get user input1 
    set /p answ2=Get User input2 
    echo %answ1% and %answ2%>>log.txt 
    notepad log.txt 
    set /p "var=<log.txt" 
    type log.txt 
0

Auch wenn Sie Ihre .bat-Datei in eine Datei umleiten, können Sie die Ausgabe auf dem Bildschirm mit >con.

Führen Sie das folgende Skript mit test.bat >test.out aus. Sie werden aufgefordert, eine Eingabe auf dem Bildschirm vorzunehmen.

timeout -t 2 
>con set /p "var1=Prompt1: " 
ipconfig 
>con set /p "var2=Prompt2: " 
echo %var1% %var2% 
>con echo %var1% %var2% 
exit /b