簡體   English   中英

Windows 批處理腳本中的“@”是什么意思

[英]What does “@” mean in Windows batch scripts

我看到@在這種情況下使用:

@echo off

@echo start eclipse.exe

@這里是什么意思?

這意味着不輸出相應的命令。 比較以下兩個批處理文件:

@echo foo

echo foo

前者只有foo作為輸出,而后者打印

H:\Stuff>echo foo 
foo

(至少在這里)。 可以看出,運行的命令也是可見的。

echo off將為完整的批處理文件關閉此功能。 但是, echo off調用本身仍然可見。 這就是為什么您會在批處理文件的開頭看到@echo off 關閉命令回顯不要回顯關閉它的命令。

在更復雜的批處理文件中刪除該行(或將其注釋掉)通常是一個有用的調試工具,因為您可以看到在錯誤消息之前運行的內容。

這意味着“不要將命令回顯到標准輸出”。

比較奇怪的是,

echo off

會將echo off發送到輸出! 所以,

@echo off

將此自動回顯行為設置為關閉 - 並在所有未來命令中停止它。

來源: http : //www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx? mfr= true

默認情況下,批處理文件將在運行時顯示其命令。 @echo off 的第一個命令的目的是關閉此顯示。 命令“echo off”關閉整個腳本的顯示,除了“echo off”命令本身。 前面的“at”符號“@”使命令也適用於自身。

@禁用該命令的回顯。 沒有它, echo start eclipse.exe行將打印預期的start eclipse.exeecho start eclipse.exe行。

echo off關閉默認命令回顯。

所以@echo off靜默關閉命令回顯,只輸出想要寫入的批處理作者實際寫入。

它繼承了 DOS 的含義。 @

在 DOS 3.3 及更高版本中,隱藏批處理命令的回顯。 該命令生成的任何輸出都會被回顯。

沒有它,您可以使用echo off命令關閉命令回顯,但該命令將首先被回顯。

包含 @ 的另一個有用時間是在命令行中使用FOR時。 例如:

FOR %F IN (*.*) DO ECHO %F

上一頁線顯示每個文件:在命令提示符中, ECHO命令,結果ECHO命令。 這條路:

FOR %F IN (*.*) DO @ECHO %F

只顯示ECHO命令的結果。

在批處理文件中:

1 @echo off(solo)=>什么都不輸出在此處輸入圖片說明

2 echo off(solo)=> 命令行顯示“echo off”

在此處輸入圖片說明

3 回聲關閉(然后回聲)=> 在此處輸入圖片說明

4 @echo off(然后回聲)=> 在此處輸入圖片說明

看,echo off(solo),表示命令行中沒有輸出,但本身顯示; @echo off(solo),表示命令行沒有輸出,本身也沒有;

您可以像這樣在“scriptBlock”中包含 @:

@(
  echo don't echoed
  hostname
)
echo echoed

尤其不要那樣做:)

for %%a in ("@") do %%~aecho %%~a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM