У меня есть этот простой VBScript, который вызывает скрипт Python:
Dim value, oShell
value = "someValue"
Set oShell = CreateObject("WScript.Shell")
currentCommand = "cmd /k " & Chr(34) & "C:\Temp\test.py" & " " & value & Chr(34)
oShell.Run currentCommand, 1, True
Скрипт Python выглядит так:
import sys
if __name__ == '__main__':
val = sys.argv[1]
# continue...
Значение sys.argv[1]
подходит для моего основного компьютера, но не подходит для компьютера ToughBook (TB) (одинаковое программное обеспечение на обоих). Я получаю эту ошибку на другом компьютере:
val = sys.argv[1] IndexError: list index out of range
Если я жестко закодирую val в коде Python, остальная часть кода Python будет нормально работать на компьютере TB.
Есть ли у кого-нибудь мысль, почему этот sys.argv[1]
не переходит на другой компьютер?
Этот .exe / путь существует на TB. Есть ли метод vbs для проверки cmd == C: \ Windows \ System32 \ cmd.exe?
Первое, что нужно попробовать, это запустить команду с полным путем и расширением и посмотреть, останется ли поведение прежним. Кроме того, идентичны ли версии Python в обеих системах?
Не могу воспроизвести. Я скопировал / вставил ваш код, и он работал нормально. Убедитесь, что
cmd
на самом деле являетсяC:\Windows\System32\cmd.exe
.