批处理脚本如何识别执行它的源?

批处理脚本如何识别执行它的源?

批处理脚本如何知道执行它的来源?

  • 从命令行 CMD 执行/调用
  • 从批处理文件执行(从文件本身或另一个批处理文件)

插图:

@Echo off
:: Test.bat
:: From CLI or Batch File
pause

答案1

要查明它是从命令行还是从批处理执行,请检查其中一个LINESCOLUMNS变量。

它尚未从 Batch 中定义。因此,SET | Find /I "LINES="

@echo off
SETLOCAL
SET | Findstr /I /C:"LINES=" >NUL
::echo %ERRORLEVEL%& pause& exit /b 
if %ERRORLEVEL%==0 (
    echo Executed from CLI
) else (
    echo Executed from Batch
    pause
)
ENDLOCAL

我尝试从 CLI 或其文件或另一个批处理文件执行它,但结果不同。

相关内容