Hola.
1. ¿Qué se supone que tiene que ver tu duda con el lenguaje
Visual Basic?. Las preguntas sobre
C# van en el subforo de
Programación .NET Framework
2. El concepto de declarar una función consiste en el propósito de devolver un valor específico al finalizar el bloque de instrucciones de dicha función, por ende, una función no parece ser aplicable ni necesaria en tu caso, ya que tan solo parece que necesitas usar un método-controlador del evento Click de un botón, e iniciar un tipo de archivo executable.
3. En el código
Batch-script que has mostrado, estás declarando una variable que tiene el mismo nombre que una de las variables de entorno:
%APPDATA%, y por ende, estás sustituyendo el valor de la variable de entorno
%APPDATA% durante el tiempo de vida de la instancia de la
CMD donde corra tu script. Hacer ese tipo de cosas va contra las guías de diseño de la programación
Batch.
4. De por si, esas dos lineas de código
Batch que has mostrado no tienen relación ni sentido entre si, puesto que declaras la variable
APPDATA y no la utilizas para nada, así que no sabemos cual es tu propósito al hacer eso.
De todas formas, te muestro dos ejemplos:
Equivalente en
C# a declarar una variable y asignarle como valor el directorio de trabajo actual:
using System.IO;
(...)
// set APPDATA=%CD%\data
string dirpath = Path.Combine(Directory.GetCurrentDirectory(), "data");
Equivalente en
C# a iniciar un tipo de archivo executable a través de
Shell-Execute:
using System.Diagnostics;
using System.IO;
(...)
// bin\game.jar
using (Process p
= new Process
()) { p.StartInfo.FileName = @".\bin\game.jar";
p.StartInfo.UseShellExecute = true;
p.StartInfo.WorkingDirectory = Path.GetDirectoryName(p.StartInfo.FileName);
p.Start();
}
Como puedes ver en el ejemplo de arriba, para iniciar un tipo de archivo executable puedes usar la clase
System.Diagostics.Process. Si en lugar de la consola de java tu intención es ejecutar directamente ese archivo .jar, entonces no te olvides de activar la propiedad
Process.StartInfo.UseShellExecute.
Saludos!