# 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)