2013-04-03 96 views
0

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

例如,我有这个至今:

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命令后面的东西。但实际上,我想要做的是显示我将在下一行使用的命令或沿着这些命令行的命令。

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

+0

你的意思是回显命令的语法以及执行它?只需在没有回声的下一行重复命令... –

+0

是的,我知道。对不起,我忘了提到这个问题。当我尝试回显命令时,它说有一个错误,因为我正在尝试执行命令。但是,真的,我只是想展示我要做的命令。我试过把它放在“”中,但它仍然不起作用。 – chakolatemilk

+0

哦,好吧,当它显示命令/输出时,只需执行'echo on'。 'echo off'不是一个死胡同的命令。它可以被撤消。 –

回答

1

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

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

将会输出你想要的命令。另外,如果在回声消除之前添加@,则在脚本开始时它不会回显echo off

1

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

+0

但这样做会太有道理。 –

1

因为还没有人回答,所以我会在手机上试一下。

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

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

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