执行脚本而不在前面键入“ 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_ROOT\Applications\python26.exe\shell\open\command
关键:
"C:\Python26\python26.exe" "%1" %*
以前很可能%*
不见了。同样,设置
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command