# 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.htm.md)
• [DO File Statements](dofilestatements.htm.md)
• [Input Case](inputcase.htm.md)