Найти - Пользователи
Полная версия: Bat файл назначает переменную в скрипт
Начало » Python для экспертов » Bat файл назначает переменную в скрипт
1
napuznik
Привет, подскажите, пожалуйста, как сделать так, что бы bat файл не только запускал скрипт, но и назначал в него переменную?
Например, в скрипте есть пустая переменная name = ‘'
При открытии файла 1.bat скрипт запускается с переменной name = ’1'
При открытии файла 2.bat скрипт запускается с переменной name = ‘2’
Есть вариант при запуске батника сохранять эту переменную в текстовый документ и вытаскивать из него при старте. Но не хочется создавать лишние файлы. Надеюсь, есть более простой вариант
Заранее спасибо
PEHDOM
napuznik а что вам мешает явно передавать аргумент?
start python.exe scripy.py %~n0
doza_and
Если вам не жалко создавать 1.bat 2.bat то что вам мешает сделать 1.py и 2.py
А в них написать
1.py
 var=1
2.py
 var=2
napuznik
PEHDOM
napuznik а что вам мешает явно передавать аргумент?
Спасибо, звучит годно
napuznik
doza_and
Если вам не жалко создавать 1.bat 2.bat то что вам мешает сделать 1.py и 2.pyА в них написать 1.py
Один скрипт должен запускаться отдельно для нескольких процессов. В данном случае изменяется только имя, поэтому нет смысла плодить скрипты с одинаковым кодом. Но все равно спасибо за ответ
doza_and
napuznik
Один скрипт должен запускаться отдельно для нескольких процессов
Каждый запуск скрипта это отдельный процесс. Иначе и не бывает.
napuznik
нет смысла плодить скрипты с одинаковым кодом.
А там не будет одинкового кода. Посмотрите что такое импорты.

можно сделать например так:
 from code import f
f("1")
napuznik
doza_and
Простите, не понял про “А там не будет одинакового кода”… Возможно, я не ясно выразил суть. Должен быть только один скрипт, в котором изначально прописана пустая переменная. Допустим:
name = “”
Бат-файл должен отправить в этот скрипт значение, например, 1. Тогда скрипт запустится с переменной:
name = ‘1’
doza_and
Я не настаиваю на предлагаемом решении а хочу показать многообразие возможностей. Вот это при решении задачек очень вредно:
napuznik
Должен быть только один скрипт
napuznik
Бат-файл должен отправить в этот скрипт
Почему это так все должно быть? Не нужна эта зашоренность. Реально вы даете две команды, ну может мышкой тычете, хотите получить два результата.
Может быть два бат файла и один скрипт.
А может быть два питон скрипта для запуска и один большой с кодом. и тыкать будете маленькие в питон скрипты.

В обоих случаях 3 файла, два маленьких и один большой. Но в гомогенной питоновской среде аргументы проще передать (нет возни с argv). Вы не обязаны передавать только строки, можете и числа передавать и вообще объекты любой сложности. Вы можете легко организовать несколько точек входа, поскольку импортировать можно что угодно. Вариант получается кроссплатформенный.

Смотрите на вопросы шире! Успехов в разработке!
napuznik
doza_and
Я не настаиваю на предлагаемом решении а хочу показать многообразие возможностей. Вот это при решении задачек очень вредно:
спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB