1
votes

I have seen this thread (and many others) but I am still not able to retrieve the args in python.

1) With this...

Run Cmd \k "Python  C:\my.py %myvar%"

... a Cmd is open but nothing happens : my.py isn't started.

2) With this...

Run C:\my1.py %myvar% 

... the python script is run but when I retrieve the args with sys.argv, I only get the path of the script not myvar. Len(sys.arg) return 1 so myvar isn't passed down to python.

1
sys.argv[0] will be your script path, your argument should be from sys.argv[1] - pyd
sys.argv[1] is %myvar% provided that there aren't spaces - Jean-François Fabre
@pyd @ Jean-François Fabre, thanks for that and sorry for not being more precise. len(sys.arg) returns 1, I don't have a sys.argv[1]. - MagTun
seems that your association with .py files is broken (registry issue). You should repair your python installation. see this: stackoverflow.com/questions/39434689/… - Jean-François Fabre
@Jean-FrançoisFabre, sys.arg works when I start my python script directly in CMD with the args with python C:\myscript.py sometext. - MagTun

1 Answers

1
votes

This thread solved it.

commands=
(join&
 python "C:\my.py" "%myvar%"`n
)
Run, cmd /c %commands%  
return

It's also possible to use Run, cmd /k %commands% or Run,%comspec% /k %commands%