如何退格cmd缓冲区中的字符?

如何退格cmd缓冲区中的字符?

如果我们使用命令提示符来运行如下简短的脚本:

C:\php> php.exe

<?php
echo 'test';
?>

,输出将直接显示在命令提示符中:

test
^C
C:\php> 

假设出现了拼写错误,我想按“退格”键。

例如假设我们输入错误echoechoo

C:\php> php.exe

<?php
echoo 'test';

如何在不需要中止整个脚本并从头开始重新输入所有内容的情况下在 cmd 上实现“退格”行为?

答案1

CMD 确实支持退格键,并且在您输入命令时它确实按您描述的方式工作执行它。

一旦你启动了命令(本例中为 php.exe),那么标准输入附加到该程序(不是 CMD),因此是否实现或允许退格取决于该程序。

对于程序来说,退格键只是它需要处理的另一个字符(例如ASCII #8)。

答案2

我知道这是一个老问题,但我的看法是:

首先,我建议尽可能将所有内容写成脚本文件并运行php <filename>,但我意识到这不是问题的重点。

如果我确实只是想快速测试一些东西(假设我忘记了是否array_flip返回翻转的数组,或者它是否翻转原始数组?)那么我会使用标志-r

C:\PHP>php -r "$arr = array(5,6,7); $arr2 = array_flip($arr); print_r($arr); print_r($arr2);"

由于您仍然在命令 shell 中,而不是 PHP shell 中,因此您可以随意退格。

php(您也可以通过输入而不是 来节省宝贵的十分之一秒php.exe

相关内容