Batch file to determine if using Command Prompt

CALL :GETMYSWITCH %CMDCMDLINE%
IF /I "%MYSWITCH%" == "/C" ECHO I WAS STARTED IN THE EXPLORER & PAUSE
IF /I NOT "%MYSWITCH%" == "/C" ECHO I WAS STARTED IN A DOS SESSION


:GETMYSWITCH
SET MYSWITCH=%2

By definition, a shell script is always going to be run in a "command prompt". But try using the SESSIONNAME env var - it seems to NOT be present if the script was started by double-clicking instead of manually running it from a prompt.


I know this is a year later but for future people searching you can use

If /I "%COMSPEC%" == %CMDCMDLINE% Goto SkipPause
pause
:SkipPause

It will skip the pause block if running from the command line and pause if running from batch file.