添加.py至PATHEXT后执行脚本提示“Access is denied”的问题求助
看起来你已经把基础配置都做足了,却卡在了"Access is denied"这个报错上,我来给你几个实际的排查和解决思路:
检查文件与目录权限
先看看你的hello.py所在的c:\path目录以及文件本身的权限设置。右键文件→属性→切换到「安全」标签,确认当前登录用户拥有「读取和执行」的权限,如果没有的话,点击「编辑」添加对应的权限,保存后再试试运行。尝试以管理员身份运行命令行
有时候Windows的UAC(用户账户控制)会限制普通权限下的文件执行,你可以右键命令提示符或者PowerShell,选择「以管理员身份运行」,然后再输入hello或者hello.py试试能不能正常执行。重新刷新文件关联配置
虽然你已经用assoc和ftype确认了关联是对的,但Windows有时候会有缓存问题。你可以重新执行一遍这两个命令,然后重启命令行窗口:assoc .py=Python.File ftype Python.File="C:/Users/gal/scoop/apps/python311/current/python.exe" "%1" %*绕开PATHEXT的临时方案(验证问题)
你可以创建一个hello.bat文件,把它放到你的%PATH%目录下,文件内容写:@python "c:\path\hello.py" %*之后直接输入
hello运行,如果这个能正常工作,说明问题大概率出在PATHEXT或者文件关联的深层配置上,而不是脚本本身的问题。检查Scoop安装的Python权限
因为你是用Scoop安装的Python,虽然绝对路径能运行,但可以确认下Python.exe所在的目录C:/Users/gal/scoop/apps/python311/current/是否在你的%PATH%最靠前的位置?有时候PATH顺序会影响调用优先级,你可以把这个目录移到PATH列表的顶部试试。
这些方法应该能帮你定位到问题所在,你可以一个个试过来~
备注:内容来源于stack exchange,提问作者GreenTriangle

