我想在屏幕上回显一个命令。我正在为某人做一些教程,我想显示当他们按下回车时将要运行的命令。
例如,到目前为止我有这个:
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命令运行一些东西。但实际上,我要做的就是展示我将要在下一行使用的命令或类似的东西。
这只是我正在做的一个例子,如果实际的回声声明一般没有意义,我很抱歉。我只是想知道是否有办法回应命令。
答案 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
。