处理一个简单的批处理程序,在该程序中向用户显示文本文件的内容,并且可以在文件末尾返回一个新字符串。我的问题是因为一个批处理文件正在显示内容并且一个正在输入,当用户开始输入一些内容时,他们看不到他们正在输入的内容,因为文件的内容会覆盖它。
输入.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
命令并记录每次按键操作,这当然是可能的。然而,这有两个问题。首先,这将阻止我记录标点符号或其他特殊字符,其次它不允许用户“返回”以附加消息或使用退格键。
这就是为什么我想知道是否有任何其他方法可以批量记录键盘输入,希望有一种方法可以解决我的问题。
我知道pause
andxcopy /w
命令可以一键按下,包括<Enter>
and<Backspace>
。
无论如何将此按键重定向到变量或文本文件?有没有另一种方法可以做到这一点。如果是这样,请告诉我。现在我可以在 C# 中轻松地做到这一点,但我想完全批量完成这个项目。
再次感谢,莫娜。