Lorsque vous exécutez un script sans taper «python» à l'avant, vous devez savoir deux choses sur la façon dont Windows appelle le programme. Le premier est de savoir quel type de fichier Windows pense qu'il s'agit:
C: \> assoc .py
.py = Python.File
Ensuite, vous devez savoir comment Windows exécute les choses avec cette extension. Il est associé au type de fichier "Python.File", donc cette commande montre ce qu'il va faire:
C: \> ftype Python.File
Python.File = "c: \ python26 \ python.exe" "% 1"% *
Donc sur ma machine, quand je tape "blah.py foo", il exécutera cette commande exacte, sans différence de résultats que si j'avais tapé le truc complet moi-même:
"c: \ python26 \ python.exe" "blah.py" toto
Si vous tapez la même chose, y compris les guillemets, vous obtiendrez des résultats identiques à ceux que vous venez de saisir "blah.py foo". Vous êtes maintenant en mesure de résoudre vous-même le reste de votre problème.
(Ou publiez des informations plus utiles dans votre question, comme de véritables copies copier-coller de ce que vous voyez dans la console. Notez que les personnes qui font ce type de chose obtiennent un vote pour leurs questions, et obtiennent des points de réputation, et davantage de personnes sont susceptibles de les aider avec de bonnes réponses.)
Apporté des commentaires:
Même si assoc et ftype affichent les informations correctes, il peut arriver que les arguments soient supprimés. Ce qui peut aider dans ce cas, c'est de corriger directement les clés de registre pertinentes pour Python. Met le
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
la clé de:
"C:\Python26\python26.exe" "%1" %*
Probablement, auparavant, %*
manquait. De même, définissez
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
à la même valeur. Voir http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Le chemin d'accès au registre peut varier, utiliser python26.exe
ou python.exe
ou tout ce qui est déjà dans le registre.
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command