Hola:
Tengo un código hecho en BAT que se llama BD.cmd y otro BD.bat que es exactamente lo mismo. Su contenido tiene unos comandos para simplificar lo que yo quiero usar.
@ECHO OFF
TITLE MySQL
CD C:\Archivos de programa\MySQL\MySQL Server 5.1\bin
mysql.exe -h localhost -u Usuario -p
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MySQL_CMD
{
class Program
{
static void Main(string[] args)
{
}
}
}
¿Puedo hacer lo mismo bajo C# en línea de comandos?
El motivo, que no se modifique el ejecutable ya en C# ni que se vea lo que tiene dentro como el BD.bat.
Saludo.
Puedes crear un bat en tiempo de ejecución con las funciones que mencionas, ejecutarlo, esperar a que termine su proceso y borrarlo o desde el mismo .bat un "autoborrado".
Otro modo puede ser igualmente lo mencionado pero con un script .sql + un .bat
Por ultimo podria ser del siguiente modo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("CMD.EXE", @"/C title Simon && cd \ && echo hola && dir *.* && pause");
info.Verb = "open";
System.Diagnostics.Process.Start(info);
Console.ReadKey();
}
}
}
Haces todo el trabajo en una sola línea o alguna combinación, mostrando o no la consola.
Aunque asi es sencillo modificar los strings que contiene este pequeño programa y tb ver los mismos, para dificultar un poco puedes utilizar valores decimales u otros y pasarlos a su equivalente en "Chr" en tiempo de ejecución para obtener el string que quieres ocultar.