0

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

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

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 命令之后运行一些东西。但实际上,我正在尝试做的是显示我将在下一行或类似这些行中使用的命令。

这只是我正在做的一个例子,如果实际的 echo 语句通常没有意义,我很抱歉。我只是想知道是否有办法回显命令。

4

3 回答 3

1

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

于 2013-04-03T17:03:17.807 回答
1

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

它给出错误的原因是因为你需要逃避一些东西。

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

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

于 2013-04-03T22:52:32.087 回答
1

>是一个特殊的符号,所以你需要转义它。bash 中的转义字符是 carat:^因此^>^>应该解决这个问题,但是 batch 的解释仍然%不同。为此你需要%%。这:

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

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

于 2013-04-04T09:33:19.503 回答