¿Dices que sabes C++? Crear un generador de archivos de Batch es muy fácil. Básicamente es:
CreateFile() +
ReadFile() +
WriteFile().
Como estoy muy aburrido he hecho un programa en C++ que crea un programa en Batch e imprime un simple
Hello World!. Lo he hecho fácil y está sin comprobaciones ni nada:
#include <windows.h>
int main()
{
HANDLE hHeap = GetProcessHeap();
//La ruta con el nombre del programa que crearemos
LPSTR lpFileName = "C:\\batch.bat";
//Creamos el programa
HANDLE hFile = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
//Obtenemos el tamaño del programa
DWORD nNumberOfBytesToRead = GetFileSize(hFile, 0);
//Reservamos memoria para el buffer
LPSTR lpBuffer = (LPSTR)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, nNumberOfBytesToRead);
DWORD nNumberOfBytesRead = 0;
//Leemos el programa
ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, &nNumberOfBytesRead, 0);
//Escribimos en el buffer los comandos del programa
lpBuffer = "echo Hello World!\npause";
//Obtenemos la longitud de los comandos
int nLengthOfString = lstrlen(lpBuffer);
//Posicionamos el puntero al principio del programa
SetFilePointer(hFile, FILE_BEGIN, 0, 0);
//Sobreescribimos los comandos
WriteFile(hFile, lpBuffer, nNumberOfBytesToRead + nLengthOfString, &nNumberOfBytesRead, 0);
return 0;
}
Espero que te haya servido.
Saludos