2017-06-16 88 views
0

我已經開始學習批處理編程,以便在Windows機器中更深入一些。在互聯網上,我看到一些帶有回聲的命令,如「@echo off」「on」,還有:「echo」。但我不知道他們在做什麼。如果有人能解釋我的echo命令的功能,請回答我。echo命令如何在批處理編程中工作

+1

回聲控制輸出。如果你不想看到任何批處理文件運行的命令,你可以調用「echo off」。如果你不想看到命令自己回顯,你可以在它之前加上'@'。 – Tamar

+0

你可以通過鍵入命令並在'/?'後面找到任何批處理命令的用途和用法 - 在這種情況下,你應該輸入'echo /?' – SomethingDark

回答

3
在Windows CMD

echo命令用於文本打印輸出到屏幕上,顯示的命令行的實際設置,這意味着當你這樣做:

@echo off 

「C:\ Users [用戶]」行之前您的命令輸入將會消失。 可以與還原:

@echo on 

這裏ECHO的所有功能解釋:

  • @echo [ON/OFF](設置命令行設置)

  • echo [text](將文字打印到屏幕上)

  • 回聲。(打印一個空行到屏幕)

  • 回聲(顯示命令行的當前設置)

  • 回聲/?(顯示ECHO命令的幫助)

我希望我能夠幫助你。

+1

我希望增加'@echo on'對調試批處理腳本也很有用,以便在某些事情看起來不起作用時查看發生了什麼。 – elzooilogico

+3

最好使用'echo(',就像dbenham所說的那樣它總是起作用(https://stackoverflow.com/a/3123194)。 – Kappa

+0

@elzooilogico是的,只適用於「命令」應用程序。但是如果你想創建一個UI ,如果你使用回聲更好,因爲它更舒適,更乾淨。 –

2

部分的答案是這樣的:What does "@" mean in Windows batch scripts

命令手段之前,@運行時,不要打印命令。

off參數告訴腳本不輸出任何其他命令,但是不將@輸出的回波關閉(自呼應尚未關閉)

的上參數將命令回顯上。

任何其他參數都只是回顯到顯示器

2

默認情況下,在批處理文件中執行的每個命令也會回顯到輸出 - 不僅僅是命令的輸出,而是命令本身。

echo命令有三種模式:

  1. 當與一些參數調用的空間後,將輸出的參數。
  2. 當調用echo.(無空格)時,它將輸出一個空行。
  3. 當剛打開或關閉的參數調用,它控制打印命令,他們執行的行爲。*

因此,echo off命令關閉在批處理文件的開頭輸出。但是,該命令本身在它有機會關閉回顯之前仍然有迴應。 @符號的作用是僅關閉當前命令的輸出。

將兩者合併,在批處理文件開始時,@echo off會關閉回聲而不會自動回顯。

(*我不知道我到底如何「開」或「關」輸出的文本,但懷疑周圍使用文本引號將改變行爲。)

+3

在大概不尋常的情況下,想要回顯_just_單詞** off **或** on **(即不是任何其他字符串的一部分),事實證明'echo.off'和'echo.on'有效。 –

+3

@JeffZeitlin,它的工作原理與echo相同。 「。」不是空白字符,所以它不會將'echo.on'解析爲'echo on'命令。利用「echo」命令假定參數字符串中的第一個字符是空白區域以跳過,除非在這種情況下它跳過了「。」。 – eryksun

+0

非常有趣!我沒有意識到這個回聲。形式可以有更多的文字(也不一定是一段時間,因爲卡帕指出了對不同答案的評論)。行情只是迴應輸出,所以猜測是不好的。 – Harun