Предположим, что файл Python называется script.py, а пакетный файл находится не только на том же диске, но и в той же папке. Тогда команда будет:
"%~dp0script.py"
Давайте разберемся с этим:
'% ~ 0' в пакетном скрипте - это путь / имя файла исполняемого в данный момент скрипта. Вы можете добавить модификаторы, чтобы получить части пути / имени файла: «d» - это буква диска, а «p» - путь к каталогу (включая косую черту), поэтому «% ~ dp0» - это диск и путь (но не имя файла или расширение) исполняемого в данный момент скрипта. Для получения дополнительной информации об этом синтаксисе введите «help help» в командном окне.
Поскольку я предполагал, что скрипт python находится в той же папке, вы просто добавляете имя скрипта в "% ~ dp0". Если вы выполняете f: \ path \ to \ batchfile.bat, "% ~ dp0script.py" становится "f: \ path \ to \ script.py". Если сценарий находится в подпапке, вы можете добавить его в - "% ~ dp0subfolder \ script.py" или даже "% ~ dp0 .. \ sibling \ script.py", если сценарий python находится в одной папке с той Пакетный скрипт запускается с.
Наконец, для хорошей меры вы цитируете все это в случае, если часть пути содержит пробелы. Если ваш скрипт на python требует аргументов, вы можете добавить их позже, вне кавычек.
"%~dp0script.py" "arg1" "arg2" "arg3" ...
Приятной особенностью всего этого является то, что это работает независимо от того, находится ли ваша пара файлов на USB-накопителе, локальном субфоллере, CD или DVD, и если пользователь копирует оба сценария вместе в какую-то другую локальную папку = вместе где-нибудь на своем компьютере - пакетный скрипт все еще вызывает скрипт python без необходимости его изменения. Он также не требует, чтобы пользователь или ваш скрипт сначала "перешли" на папку, содержащую скрипт, - он работает независимо от рабочего каталога, когда пользователь запускает ваш пакетный файл.