批处理脚本如何知道执行它的来源?
- 从命令行 CMD 执行/调用
- 从批处理文件执行(从文件本身或另一个批处理文件)
插图:
@Echo off
:: Test.bat
:: From CLI or Batch File
pause
答案1
要查明它是从命令行还是从批处理执行,请检查其中一个LINES
或COLUMNS
变量。
它尚未从 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 或其文件或另一个批处理文件执行它,但结果不同。