Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 21, 2019 01:28:29

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

Привет, подскажите, пожалуйста, как сделать так, что бы bat файл не только запускал скрипт, но и назначал в него переменную?
Например, в скрипте есть пустая переменная name = ‘'
При открытии файла 1.bat скрипт запускается с переменной name = ’1'
При открытии файла 2.bat скрипт запускается с переменной name = ‘2’
Есть вариант при запуске батника сохранять эту переменную в текстовый документ и вытаскивать из него при старте. Но не хочется создавать лишние файлы. Надеюсь, есть более простой вариант
Заранее спасибо

Отредактировано napuznik (Сен. 21, 2019 01:55:16)

Офлайн

#2 Сен. 21, 2019 14:43:40

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

napuznik а что вам мешает явно передавать аргумент?

start python.exe scripy.py %~n0



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 21, 2019 14:45:41)

Офлайн

#3 Сен. 21, 2019 19:26:51

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

Если вам не жалко создавать 1.bat 2.bat то что вам мешает сделать 1.py и 2.py
А в них написать
1.py

 var=1
2.py
 var=2



Офлайн

#4 Сен. 23, 2019 17:42:39

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

PEHDOM
napuznik а что вам мешает явно передавать аргумент?
Спасибо, звучит годно

Офлайн

#5 Сен. 23, 2019 17:44:38

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

doza_and
Если вам не жалко создавать 1.bat 2.bat то что вам мешает сделать 1.py и 2.pyА в них написать 1.py
Один скрипт должен запускаться отдельно для нескольких процессов. В данном случае изменяется только имя, поэтому нет смысла плодить скрипты с одинаковым кодом. Но все равно спасибо за ответ

Офлайн

#6 Сен. 23, 2019 20:18:04

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

napuznik
Один скрипт должен запускаться отдельно для нескольких процессов
Каждый запуск скрипта это отдельный процесс. Иначе и не бывает.
napuznik
нет смысла плодить скрипты с одинаковым кодом.
А там не будет одинкового кода. Посмотрите что такое импорты.

можно сделать например так:
 from code import f
f("1")



Отредактировано doza_and (Сен. 23, 2019 20:19:27)

Офлайн

#7 Сен. 23, 2019 23:45:28

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

doza_and
Простите, не понял про “А там не будет одинакового кода”… Возможно, я не ясно выразил суть. Должен быть только один скрипт, в котором изначально прописана пустая переменная. Допустим:
name = “”
Бат-файл должен отправить в этот скрипт значение, например, 1. Тогда скрипт запустится с переменной:
name = ‘1’

Офлайн

#8 Сен. 24, 2019 08:11:28

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

Я не настаиваю на предлагаемом решении а хочу показать многообразие возможностей. Вот это при решении задачек очень вредно:

napuznik
Должен быть только один скрипт
napuznik
Бат-файл должен отправить в этот скрипт
Почему это так все должно быть? Не нужна эта зашоренность. Реально вы даете две команды, ну может мышкой тычете, хотите получить два результата.
Может быть два бат файла и один скрипт.
А может быть два питон скрипта для запуска и один большой с кодом. и тыкать будете маленькие в питон скрипты.

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

Смотрите на вопросы шире! Успехов в разработке!



Офлайн

#9 Сен. 25, 2019 13:30:01

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Bat файл назначает переменную в скрипт

doza_and
Я не настаиваю на предлагаемом решении а хочу показать многообразие возможностей. Вот это при решении задачек очень вредно:
спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version