2013-04-03 74 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。