Программа запуска python ("C:\WINDOWS\py.exe"
) имеет команду списка: py.exe -0
Она отображает все установленные версии python. Если все, что вам нужно, это визуальный список, он работает сам по себе. Однако в пакетном сценарии вы можете захотеть подсчитать версии:
setlocal enableDelayedExpansion
set pyvcount=0
for /f %%G in ('%SYSTEMROOT%\py.exe -0') do set /a pyvcount+=1
К сожалению, я не могу понять, как остановить команду от вывода Installed Pythons found by py Launcher for Windows
на консоль.
Обновлено:
Скрыть вывод, перенаправив поток ошибок на nul
for /f %%G in ('%SYSTEMROOT%\py.exe -0 2>nul') do set /a pyvcount+=1
Получил, чтобы он работал в пакетном сценарии, изменив последнюю строку на: for /f %%G in ('%SYSTEMROOT%\py.exe -0') do set /a pyvcount+=1
Также пришлось добавить строку echo Number of installed Pythons: %pyvcount%
в самом конце, чтобы увидеть окончательное значение pyvcount
.
Вы можете скрыть вывод строки, добавив @echo off
в начале. Это не повлияет на команду echo
. Так же исправил шлейф for
. Виноват.
У меня не работает в файле
.bat
в Windows 7. Отображает три строки, первая -setlocal enableDelayedExpansion
, вторая -set pyvcount=0
, последняя - просто-0') was unexpected at this time.
.