使用文件位置的系统路径从windows命令行启动Python脚本

使用文件位置的系统路径从windows命令行启动Python脚本,python,windows,Python,Windows,我不确定,这可能更像是一个普通的Windows问题,而不是Python问题 我有一个名为GDAL(地理空间库)的文件夹,里面装满了python文件。GDAL库的位置存储在windows系统路径中,因此当我在windows命令窗口中键入此项以检查路径是否正确配置时: gdal_retile.py 我打开记事本来显示代码,正如我所期望的,因为这是这台电脑上.py文件的默认应用程序 如果我这样做: python gdal_retile.py 它说,它不起作用 没有这样的文件或目录 但如果我定义完整

我不确定,这可能更像是一个普通的Windows问题,而不是Python问题

我有一个名为GDAL(地理空间库)的文件夹,里面装满了python文件。GDAL库的位置存储在windows系统路径中,因此当我在windows命令窗口中键入此项以检查路径是否正确配置时:

gdal_retile.py
我打开记事本来显示代码,正如我所期望的,因为这是这台电脑上.py文件的默认应用程序

如果我这样做:

python gdal_retile.py
它说,它不起作用

没有这样的文件或目录

但如果我定义完整路径:

python "C:\Program Files\GDAL\gdal_retile.py"

它很好用。路径不能用作Python解释器参数的一部分吗?

TL:DR

PATH
用于搜索您试图运行的(可执行)文件。如果文件不可执行(例如,文本文件),windows将尝试查找注册用于处理文件扩展名(在您的记事本中)的程序,并打开该文件,将文件路径作为参数传递给它

找到正确的程序后,首先检查以下所有参数是否有最终的
%ENVIRONMENT\u VARIABLE%
占位符以替换为实际值,然后将其视为以空格分隔的字符串列表并传递给启动程序。那么,计划的任务就是找出如何处理它们<代码>路径在参数解析中没有作用

为什么会这样?
程序的参数可以是任何东西。假设您正在传递要在当前文件夹中创建的文件的文件名。操作系统如何知道您传入的文件名实际上不是要在
路径中搜索的现有文件,而是将由程序创建的文件?这就是为什么处理论据的责任完全在正在启动的程序上。

Python在其参数中不考虑系统路径,甚至不是<代码> Python PATH < /C> >

您可以使用
where
来模拟此操作,以在路径中查找脚本

where gdal_retile.py > %TEMP%\fullp
然后用它来设置一个变量

set /P C=<%TEMP%\fullpath
(此处对
where
命令没有错误检查,该命令可能不返回任何内容或返回超过1条路径,因此该解决方案是完善的,但与Windows上的
.py
扩展相关联的解释器相比,启动另一个解释器非常方便)

是有意义的。从逻辑上讲(不知道你的答案),这似乎是一个自然的路径扩展,能够在论点解决中使用它,但是的,这是非常有意义的。
python "%C%"