Co oznacza " @ " w skryptach wsadowych systemu Windows
Widziałem @
jest używany w takich kontekstach:
@echo off
@echo start eclipse.exe
Co oznacza @
tutaj?
7 answers
Oznacza to, że nie należy wypisywać odpowiednich poleceń. Porównaj dwa następujące pliki wsadowe:
@echo foo
I
echo foo
Pierwszy ma tylko foo
jako wyjście, podczas gdy drugi drukuje
H:\Stuff>echo foo
foo
(przynajmniej tutaj). Jak widać polecenie, które jest uruchamiane, jest również widoczne.
echo off
wyłączy to dla całego pliku wsadowego. Jednak samo wywołanie echo off
nadal byłoby widoczne. Dlatego widzisz @echo off
na początku plików wsadowych. Wyłącz polecenie echo i nie echo polecenia wyłączającego go.
Usunięcie tego wiersza (lub skomentowanie go) jest często pomocnym narzędziem debugowania w bardziej złożonych plikach wsadowych, ponieważ można zobaczyć, co jest uruchamiane przed Komunikatem o błędzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 08:13:02
Oznacza "nie echo polecenia do standardowego wyjścia".
Raczej dziwnie,
echo off
Wyśle echo off
do wyjścia! Więc
@echo off
Wyłącza automatyczne echo i zatrzymuje je również dla wszystkich przyszłych poleceń.
Źródło: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=trueWarning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 08:14:32
@
wyłącza echo dla tego polecenia. Bez niej linia echo start eclipse.exe
wydrukuje zarówno zamierzony start eclipse.exe
i linii echo start eclipse.exe
.
echo off
wyłącza domyślnie polecenie echo.
Więc @echo off
po cichu wyłącza polecenie echoing, i tylko output the batch author intended to be W rzeczywistości jest napisany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 08:13:18
Dziedziczy znaczenie z DOS. @:
W DOS-ie w wersji 3.3 i nowszej, ukrywa echo polecenia wsadowego. Każde wyjście wygenerowane przez polecenie jest wyświetlane.
Bez niego, można by wyłączyć Echo polecenia używając echo off
, ale to polecenie byłoby Echo jako pierwsze.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 08:13:13
Innym przydatnym czasem do włączenia @ jest użycie FOR
w wierszu poleceń. Na przykład:
FOR %F IN (*.*) DO ECHO %F
Poprzednia linia pokazuje dla każdego pliku: wiersz polecenia, polecenie ECHO
i wynik polecenia ECHO
. W ten sposób:
FOR %F IN (*.*) DO @ECHO %F
Pokazany jest tylko wynik ECHO
polecenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 17:32:17
Możesz umieścić @ w 'scriptblocku' w następujący sposób:
@(
echo don't echoed
hostname
)
echo echoed
A szczególnie tego nie rób:)
for %%a in ("@") do %%~aecho %%~a
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 21:20:16
Domyślnie, plik wsadowy wyświetli swoje polecenie podczas uruchamiania. Celem tego pierwszego polecenia @echo off jest wyłączenie wyświetlacza. Polecenie "echo off" wyłącza wyświetlanie całego skryptu, z wyjątkiem samego polecenia "echo off". znak " at "" @ " z przodu sprawia, że polecenie stosuje się również do siebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-20 10:12:47