我编写了一个批处理脚本,用于检查 Python 是否已安装,如果未安装 - 它会启动包含在与其自身相同的文件夹中的 Python 安装程序。
我正在使用以下代码:
reg query "hkcu\software\Python 2.6"
if ERRORLEVEL 1 GOTO NOPYTHON
:NOPYTHON
ActivePython-2.6.4.8-win32-x86.msi
reg query "hklm\SOFTWARE\ActiveState\ActivePerl\" 1>>Output_%date%_%time%.log 2>&1
if ERRORLEVEL 1 GOTO NOPERL
reg query "hklm\SOFTWARE\Gtk+"
if ERRORLEVEL 1 GOTO NOPYGTK
:NOPERL
ActivePerl-5.10.1.1006-MSWin32-x86-291086.msi 1>>Output_%date%_%time%.log 2>&1
:NOPYGTK
pygtk_windows_installer.exe
但在某些情况下,即使安装了 Python,安装程序也会启动。这里有什么问题?
最佳答案
注册表查询完成后,您的代码不会分支。不管第一个 if ERRORLEVEL
的计算结果是什么,下一步总是进入 :NOPYTHON
标签。
Ed:这是一个如何让它工作的例子。这个想法是添加另一个 goto 语句,如果需要,它将跳过 :NOPYTHON
标签。
reg query "hkcu\software\Python 2.6"
if ERRORLEVEL 1 GOTO NOPYTHON
goto :HASPYTHON
:NOPYTHON
ActivePython-2.6.4.8-win32-x86.msi
:HASPYTHON
reg query "hklm\SOFTWARE\ActiveState\ActivePerl\" 1>>Output_%date%_%time%.log 2>&1
关于windows - 用于检查 Python 是否安装的批处理文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4920483/