簡體   English   中英

使用 python 3 執行腳本的批處理腳本(如果可用)否則 python 2

[英]Batch Script to Execute script with python 3 if available else python 2

嘗試為使用 python3 運行程序的 Windows 創建批處理腳本(如果可用)。

我知道腳本可以用$py -2 script.py和 py3 用$py -3 script.py

如果我運行py -0 ,它會返回所有的 python 版本。

我如何構建這個腳本?

我不想檢查 python 目錄是否可用,我更願意以一種與 python 位置無關的方式進行檢查。

不是完整的解決方案,而是一種檢測安裝了哪個版本的Python的方法:

您可以通過運行py -3 --version並檢查批處理腳本中的%ERRORLEVEL%變量來檢查是否已安裝Python 3。 如果它是0,則py -3 --version是成功的,即的Python 3被安裝在系統上。 如果非零,則未安裝Python 3。

直接用python.exe --versionfindfindstr無效(使用python 2.7)。

構建變量並運行返回版本的python腳本,將啟用此管道!

解決方案 :

@echo off
set "$py=0"
call:construct

for /f "delims=" %%a in ('python #.py ^| findstr "2"') do set "$py=2"
for /f "delims=" %%a in ('python #.py ^| findstr "3"') do set "$py=3"
del #.py
goto:%$py%

echo python is not installed or python's path Path is not in the %%$path%% env. var
exit/b

:2
echo running with PY 2

exit/b

:3
echo running with PY 3

exit/b

:construct
echo import sys; print('{0[0]}.{0[1]}'.format(sys.version_info^)^) >#.py

您可以在沒有臨時文件的情況下進行

set PYTHON_MAJOR_VERSION=0
for /f %%i in (python -c "import sys; print(sys.version_info[0])"') do set PYTHON_MAJOR_VERSION=%%i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM