采取按键输入的替代方法

时间:2013-11-14 01:27:04

标签: batch-file input record keypress

处理一个简单的批处理程序,其中用户显示文本文件的内容,并可以将新字符串返回到文件的末尾。我的问题是,因为一个批处理文件显示内容,一个正在接收输入,当用户开始输入他们无法看到他们正在键入的内容时,因为文件的内容覆盖它。

input.bat

@echo off
set target=log.txt
if not exist "%target%" Copy con "%target%"
start /b print.bat "%target%"
type con >> %target%

Echo ERROR!
pause
Exit /b

print.bat

@echo off
if "%~1" equ "" (
cls
Echo ERROR print[0]: No parameter
pause
Exit /b
)
:loop
if not exist "%~1" (
Echo ERROR print[1]: Cannot find targetted file!
pause
Exit /b
)
cls
type "%~1"
sleep -m 50
goto loop

现在我知道批处理文件可以使用以下任一方式输入:

  • set /p
  • choice
  • type con

在上面的例子中,我使用type con,并将其重定向到output.txt。但是我需要用户能够看到他们正在键入的内容,这对于控制台的连续输出流来说非常困难。

当然,如果我使用choice命令并记录每次按键,我想出了输出到用户键入的用户键入的内容的想法。但是这有两个问题。首先,这将阻止我记录puntuation或otehr speacial字符,其次它不允许用户“返回”以附加消息或使用退格键。

这就是为什么我想知道是否有其他方法可以批量录制键盘输入,希望能够解决我的问题。

我知道pausexcopy /w命令可以按一个键包括<Enter><Backspace>

无论如何将此按键重定向到变量或文本文件?还有另一种方法吗?如果是的话,请告诉我。现在我可以轻松地在C#中执行此操作,但我想完全批量完成此项目。

再次感谢,Mona。

0 个答案:

没有答案