DOS .bat-Skript gibt keine Argumente weiter

1893
Clare Macrae

Wir haben ein Problem auf einem PC, das offenbar keine Argumente in .bat-Skripts berücksichtigt, dh sie nicht an aufgerufene Python-Skripts weitergibt. Es funktioniert gut auf etwa 10 anderen sehr ähnlichen Maschinen.

Wir haben ein Fledermaus-Skript wie dieses:

@REM Just pass all arguments directly to the python script of the same name @%~dpn0.py %* 

Auf diesem einen PC scheinen die Argumente nicht an das Python-Skript weiterzuleiten, das aufgerufen wird.

Diese Redewendung wird überall in unseren Bauräumen verwendet - und wir können nicht herausfinden, warum sie auf nur einer Maschine ausfällt.

Gibt es irgendwelche Vorschläge bezüglich der Ursache oder wie wir das Problem beheben könnten, bitte?

  • Betriebssystem: Windows 7 Pro, 64-Bit
  • Python-Version: 2.7.6
0
Was passiert zu Debugging-Zwecken, wenn Sie "echo% *" aufrufen, anstatt Ihr Python-Skript aufzurufen und die Parameter zu übergeben? Können Sie alle Argumente sehen? Haben Sie die Befehlszeilengrenze von 8191 erreicht, wie hier erläutert? http://support.microsoft.com/kb/830473 JSanchez vor 10 Jahren 3

1 Antwort auf die Frage

2
user293026

Clare stellte diese Frage in meinem Namen, aber ich habe seitdem herausgefunden, was los ist. Danke an JSanchez für den Startzeiger auf die Antwort. Das Problem war nicht das Fledermaus-Skript, sondern der Python, den es rief. Ich hatte eine Arbeit gefunden, wo ich tippen konnte

python the_python_script.py the arguments 

hat schon gearbeitet Was mir nicht in den Sinn gekommen war, war nur das Tippen zu überprüfen

the_python_script.py the arguments 

in der Befehlszeile und lassen Sie Windows sich überlegen, mit welchem ​​Python das Skript ausgeführt werden soll

Wenn ich das so machte, manifestierte das Programm dasselbe Problem - keine Argumente.

Dies führte mich dann zu

Also habe ich die Registrierung überprüft - meine Assoziation war tatsächlich gebrochen

Behoben, und jetzt scheint das zu funktionieren ... also war es nicht das .batSkript, sondern die Python-Dateizuordnung.