问题描述
我编写了一个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 (将#修改为@)