【问题标题】:Echo a command on screen在屏幕上回显命令
【发布时间】:2013-04-03 17:00:03
【问题描述】:

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

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

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 语句通常没有意义,我很抱歉。我只是想知道是否有办法回显命令。

【问题讨论】:

  • 您的意思是回显命令的语法并执行它?只需在没有回声的情况下在下一行重复命令...
  • 是的,我知道。对不起,我忘了提到问题。当我尝试回显命令时,它说有错误,因为我正在尝试执行命令。但实际上,我只想显示我将要执行的命令。我试过把它放在“”中,但还是不行。
  • 哦,好吧,当需要显示命令/输出时,只需执行echo onecho off 不是一个死胡同的命令。可以撤消。
  • 不行,我也试过了。没有办法只显示一个命令?
  • 好吧,我不明白你所说的“回显命令”是什么意思。

标签: file text batch-file command


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 但这太有道理了。
    【解决方案3】:

    由于还没有人接听,我打算在手机上尝试一下。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多