我的简单聊天程序中的问题

Problems in my simple chat program

我做了一个简单的批量聊天,将消息写入一个 txt 文件。 我需要帮助打印文件每次更改和隐藏输出。 我使用 type、delay 和 cls 来打印文件,但没有用,它没有打印文件。

launcher.bat:

start cmd /k 
call room.bat
call chat.bat

using the launcher photo

room.bat(问题):

:chat1
cls
TYPE room.txt
timeout /t 0.5
goto chat1

chat.bat(工作但显示有关 os 和文件的额外信息):

@echo off
cls
set D=%Date%
cls
echo enter your name
SET /P name=[name]
pause
:room
cls
SET /P chatpublic=[everyone]
SET "
echo %name%: %chatpublic%    |%D%|>> room.txt
pause
goto room

without the launcher photo

罪魁祸首是:

echo %name%: %chatpublic%    |%D%|>> room.txt

那是因为 | 竖线在 Windows 命令行解释器中有特殊含义: commandA | commandB: pipe the output from commandA into commandB.

如果你想在另一种意义上使用 | 垂直线(例如用 echo 命令显示它),那么你应该 escape 如下:

echo %name%: %chatpublic%    ^|%D%^|>> room.txt