Get Job name when you are executing job. This is useful when you need to make reference to the job being executed.

1
2DECLARE @jobname sysname, @jobid uniqueidentifier
3
4SELECT @jobname=b.name,@jobid=b.job_id
5FROM sys.dm_exec_sessions a,msdb.dbo.sysjobs b
6WHERE a.session_id=@@spid
7AND
8(SUBSTRING(MASTER.dbo.FN_VARBINTOHEXSTR(CONVERT(VARBINARY(16), b.JOB_ID)),1,10)) = SUBSTRING(a.PROGRAM_NAME,30,10)
9PRINT 'Job Name : ' + @jobname

Instead, you can Use Tokens in Job Steps. https://docs.microsoft.com/en-us/sql/ssms/agent/use-tokens-in-job-steps

1
2PRINT 'Job Name  : '+'$(ESCAPE_SQUOTE(JOBNAME))'
3PRINT 'Step Name : '+'$(ESCAPE_SQUOTE(STEPNAME))'