Как открыть файл Python на отдельном диске через командный файл? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть .py и командный файл на USB-диске. Как я могу получить это так, чтобы командный файл мог открыть файл .py. Когда я попробовал это раньше, он не может найти файл.

1 Ответ

0 голосов
/ 09 ноября 2018

Предположим, что файл 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 без необходимости его изменения. Он также не требует, чтобы пользователь или ваш скрипт сначала "перешли" на папку, содержащую скрипт, - он работает независимо от рабочего каталога, когда пользователь запускает ваш пакетный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...