执行脚本而不在前面键入“ python”时,你需要了解有关Windows如何调用程序的两件事。首先是找出Windows认为的文件类型:
C:> assoc .py .py = Python.File
接下来,你需要了解Windows如何使用该扩展名执行操作。它与文件类型“ Python.File”相关联,因此此命令显示了将要执行的操作:
C:> ftype Python.File Python.File =“ c: python26 python.exe”“%1”%*
因此,在我的机器上,当我键入“ blah.py foo”时,它将执行此确切命令,与我自己键入完整内容相比,结果没有差异:
“ c: python26 python.exe”“ blah.py” foo
如果你键入相同的内容(包括引号),则得到的结果与键入“ blah.py foo”时的结果相同。现在,你可以自己解决其余的问题。
(或在你的问题中发布更多有用的信息,例如在控制台中看到的实际剪切和粘贴的副本。请注意,进行此类操作的人会投票给他们的问题进行投票,他们会获得声誉得分,还有更多的人可能会为他们提供良好的答案。)
来自评论:
即使assoc和ftype显示正确的信息,也有可能参数被剥离。在这种情况下可能有帮助的是直接修复Python的相关注册表项。设置
HKEY_CLASSES_ROOTApplicationspython26.exeshellopencommand
关键:
"C:Python26python26.exe" "%1" %*
以前很可能
%*不见了。同样,设置
HKEY_CLASSES_ROOTpy_auto_fileshellopencommand



