Небольшое улучшение ответа Иакова:
@echo off
pushd c:\py
c:\python271\python.exe %*
popd
Сохраните это как py.cmd в одном из каталогов из вашей переменной среды PATH. Тогда вы можете позвонить
py sample.py arg1 arg2 ...
Это работает с любым количеством аргументов.
Но, как уже упоминалось в wberry, вы можете изменить рабочий каталог внутри скрипта Python, если вам это действительно нужно (но я думаю, что это плохая идея):
os.chdir(os.path.abspath(os.path.dirname(__file__))) #untested
Хотя это не совсем ответ на ваш вопрос, я рекомендую использовать следующую схему:
Скажем, у меня есть скрипт Python c: \ mydir \ myprog.py , который требует специальных переменных среды (PATH, ORACLE_HOME и т. Д.) И, возможно, ему нужен определенный рабочий каталог.
Затем я создаю файл myprog.cmd в том же каталоге:
@echo off
setlocal
set PATH=...
set ORACLE_HOME=...
pushd %~dp0
python %~dpn0.py %*
popd
endlocal
Часть pushd / popd предназначена для изменения и восстановления рабочего каталога.
Для объяснения синтаксиса% ~ ... введите
help call
в командной строке.
Этот подход дает вам полный контроль над средой вашей программы на Python.
Обратите внимание, что вызов python является общим: если вам нужен второй скрипт Python otherprog.py , просто сохраните копию myprog.cmd как otherprog.cmd .