0

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

输入.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

打印.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命令并记录每次按键操作,这当然是可能的。然而,这有两个问题。首先,这将阻止我记录标点符号或其他特殊字符,其次它不允许用户“返回”以附加消息或使用退格键。

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

我知道pauseandxcopy /w命令可以一键按下,包括<Enter>and<Backspace>

无论如何将此按键重定向到变量或文本文件?有没有另一种方法可以做到这一点。如果是这样,请告诉我。现在我可以在 C# 中轻松地做到这一点,但我想完全批量完成这个项目。

再次感谢,莫娜。

4

0 回答 0