在屏幕上回应命令

时间:2013-04-03 17:00:04

标签: file text batch-file command

我想在屏幕上回显一个命令。我正在为某人做一些教程,我想显示当他们按下回车时将要运行的命令。

例如,到目前为止我有这个:

echo off

echo Tutorial

pause

echo .
echo .
echo This will show how to read the first line of a text file and place into another text file
echo .
echo .

pause

set /p texte=< test.txt
echo FOR %P IN (%texte%) DO(echo blah >> test2.txt)

pause

然而,当它到达最后一个回声时它将不起作用,因为我正在回显一个命令而不仅仅是一个文本。有没有办法回应命令?

编辑:当我尝试运行这样的东西时,它会说一旦它到达最后一个echo命令就会出现错误,它说我正在尝试按照echo命令运行一些东西。但实际上,我要做的就是展示我将要在下一行使用的命令或类似的东西。

这只是我正在做的一个例子,如果实际的回声声明一般没有意义,我很抱歉。我只是想知道是否有办法回应命令。

3 个答案:

答案 0 :(得分:1)

在大多数shell中,有一个调试模式可以实现你想要的。例如,在Korn shell中,您可以键入set -x来实现此目的。

答案 1 :(得分:1)

因为还没有人回答,我打算在手机上试一试。

它发出错误的原因是因为你需要逃避一些事情。

Echo for ^%p in ^(^%texte^%^) do ^(echo Blah ^>^> test2.txt ^)

这花了大约20分钟,所以我最好至少得到一个upvote。

答案 2 :(得分:1)

>是一个特殊的符号,所以你需要逃避它。 bash中的转义字符是克拉:^因此^>^>应该解决该问题,但批处理仍然以不同的方式解释%。为此你需要%%。这样:

Echo FOR %%P IN (%%texte%%) DO(echo blah ^>^> test2.txt)

将完全按照您的意愿输出命令。此外,如果您在回显之前添加@,则不会在脚本开头回显echo off