Windows批处理脚本中的嵌套条件

问题描述

我编写了一个Windows批处理脚本py.bat,该脚本应该运行Python脚本,如有必要,在脚本名称添加.py扩展名,并传递0、1或2个命令行参数。令人惊讶的是,零参数和单参数情况被正确处理,而二参数情况却没有被正确处理。如有任何建议,我将不胜感激。

@ECHO OFF

REM This script runs a Python script,adding the .py extension to the script name if necessary,REM and passing 0,1,or 2 command-line arguments.


:Step1

If EXIST "%1%" (
   set file=%1%
   GOTO Step2
)

If EXIST "%1%.py" (
   set file=%1%.py
   GOTO Step2
)

echo Script '%1%' not found!
GOTO End


:Step2

if "%2" EQU "" (
   call python %file%

) else (
   if "%3%" EQU "" (
      call python %file% %2%
   ) else (
      call python %file% %2% %3%
   )
)

:End

我有一个名为count_args.py的简单Python脚本,它报告命令行参数的数量,并以两种方式运行它-直接和通过py.bat。以下I / O显示批处理脚本不会传递多个命令行参数。

(py38) C:\Phillip\Computer\Python\Code3>python count_args.py
Total number of command-line arguments: 0

(py38) C:\Phillip\Computer\Python\Code3>python count_args.py a
Total number of command-line arguments: 1

(py38) C:\Phillip\Computer\Python\Code3>python count_args.py a b
Total number of command-line arguments: 2

(py38) C:\Phillip\Computer\Python\Code3>py count_args
Total number of command-line arguments: 0
(py38) C:\Phillip\Computer\Python\Code3>py count_args a
Total number of command-line arguments: 1
(py38) C:\Phillip\Computer\Python\Code3>py count_args a b
Total number of command-line arguments: 1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)