Можно создавать только гибридные батники, которые одновременно можно выполнять и в командной строке, и в cscript, например:
CMD/BATCH:
@set @x=0; /*
@echo off
ver |>NUL find /v "5." && if "%~1"=="" cscript.exe //nologo //e:jscript "%~f0"& exit /b
::
:: <--- Здесь код Вашей основной программы
::
pause
exit /B
:: Эту строку не трогать. Ниже ничего не писать!!!
*/new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);
Такая JScript-вставка позволяет перезапустить батник от имени администратора.