# GO

> [HTML Version](go_vue.htm)

This directive specifies the action or sequence of directives to execute when the file is exited with the G or GO command. The sequence starts with the first directive following the equals sign, and continues until the **\$** is encountered. The special character **%** may be used to refer to the name of the file being edited (without any extension) while the **@** character refers to the file’s extension. 

Under the standalone implementation of VUE, the GO directive must be limited to a single line (e.g. GO=compil %\$).

In order to define different GO commands for different file types, you can specify a DO file in the GO directive and then use IF statements to separate out the file types and associated commands. For example, you might set  GO=COMX % @ and then create a COMX.DO something like...

    ;COMX.DO 

    ;Usage COMX file ext (file=\$0, ext=%1)



    IF UCS("\$1") = "BAS"       ; for extension .BAS

        COMPIL \$0              ; use simple compil

        EXIT

    ENDIF



    IF USC("\$1") = "BP"        ; for extension .BP        

        COMPIL \$0/X:2/M/PX     ; add advanced switches

        EXIT

    ENDIF



    IF UCS("\$1") = "CSV"       ; for extension .CSV

        CSV2XL \$0              ; convert to XLSX

    ENDIF



Note that the file extension (\$1) may be lower case, hence the use of the UCS() function to make the IF tests effectively case-insensitive.  (You could also use an OR clause to associate multiple extensions with the same command.)

**Example**

This example consists of four consecutive lines in INI.VUE, shown below with explanations.

| **Line in INI.VUE** | **Effect** |
|------|------|
| GO = COMPIL %/M/X:2/LF/PX | COMPIL the file using COMPIL switches M, X:2, LF and PX ("COMPIL TEST1/M/X:2/LF/PX")  |
| VERSYS %.RUN | Display version information for the new file TEST1.RUN |
| COPY RUNS:=%.RUN | Copy TEST1.RUN to the RUNS: ersatz directory |
| \$ | Done with GO directive sequence |




**See Also**

•	[DO File Arguments](dofilearguments.md)

•	[DO File Statements](dofilestatements.md)

•	[Input Case](inputcase.md)