script run how example create commands batch bat windows batch-file

run - windows batch file virus



Qué significa "@" en las secuencias de comandos de lote de Windows (7)

Vi @ se usa en tales contextos:

@echo off @echo start eclipse.exe

¿Qué significa @ aquí?


De forma predeterminada, un archivo por lotes mostrará su comando mientras se ejecuta. El propósito de este primer comando que @echo off es apagar esta pantalla. El comando "echo off" desactiva la visualización de todo el script, excepto el comando "echo off". El signo "at" "@" delante hace que el comando también se aplique a sí mismo.


El @ desactiva el eco para ese comando. Sin él, la línea echo start eclipse.exe imprimirá el start eclipse.exe previsto start eclipse.exe y la línea echo start eclipse.exe .

El echo off desactiva el eco del comando by-default.

Por lo tanto, @echo off silenciosamente desactiva el eco de comando y solo se genera el resultado del autor del lote que se va a escribir.


Hereda el significado de DOS. @ :

En DOS versión 3.3 y posterior, oculta el eco de un comando por lotes. Cualquier salida generada por el comando se repite.

Sin él, podría desactivar el eco de comandos utilizando el comando echo off , pero ese comando se repetirá primero.


Otro momento útil para incluir @ es cuando usa FOR en la línea de comando. Por ejemplo:

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

Muestra de línea anterior para cada archivo : el símbolo del sistema, el comando ECHO y el resultado del comando ECHO . De esta manera:

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

Solo se muestra el resultado del comando ECHO .



Significa no emitir el comando respectivo. Compare los siguientes dos archivos por lotes:

@echo foo

y

echo foo

El primero solo tiene foo como salida mientras que el segundo imprime

H:/Stuff>echo foo foo

(aquí, al menos). Como se puede ver, el comando que se ejecuta también es visible.

echo off apagará esto para el archivo de lote completo. Sin embargo, el echo off call aún sería visible. Por eso ve @echo off al comienzo de los archivos por lotes. Desactive los ecos de los comandos y no repita el comando apagándolo.

Quitar esa línea (o comentarla) suele ser una herramienta de depuración útil en archivos por lotes más complejos, ya que puede ver lo que se ejecuta antes de un mensaje de error.


puedes incluir @ en un ''scriptBlock'' como este:

@( echo don''t echoed hostname ) echo echoed

y especialmente no hagas eso :)

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