У меня есть функция, которая выполняет одну и ту же операцию для всех моих скриптов, но изменится только переменная, в которой хранится значение Pass-Fail. Например, в одном скрипте -> статус хранится в Envrionment.Value("Current_Status") в другом скрипте -> статус хранится в DataTable.Value("Status",1) в другом скрипте -> статус хранится в objRS("AddCriteria_Status").Значение
Итак, я пытаюсь создать функцию, в которой я передаю эти параметры в виде строк, а затем использую их как имена переменных. Вот пример кода:
Envrionment.Value("Current_Status") = "none"
Environment.Value("Fail_text") = "none"
Call AddCriteria("Environment.Value(""Current_Status"")","Environment.Value(""Fail_text"")")
Pubic Function AddCriteria(varStatus,varActual)
varTemp = ""
Execute(varStatus+ "=InProgress") 'change status to InProgress by the time execution is done
Execute(varActual + "=not_defined") 'this will have the reason the case failed
....code
If varTemp = "FAIL" Then
Execute(varStatus+ "=PASS")
Execute(varActual + "=PASS")
Else
Execute(varStatus+ "=FAIL")
Execute(varActual + "=Criteria did not get added")
End If
End Function
При вызове подпрограммы я хочу, чтобы значение Environment.Value("Current_Status") изменилось с "none" на "InProgress", а затем на "PASS". Но после выполнения команды "Execute" переменная среды становится пустой .
Поскольку CVar не поддерживается в VBScript, я не могу его использовать.
Я попробовал Eval, но он не работает в другом направлении, то есть: если вы измените значение Environment.Value("Current_Status"), то изменится значение Eval(varStatus), но я не смог найти способ изменить значение Eval(varStatus), чтобы значение Environment.Value("Current_Status") изменилось.
Пожалуйста, помогите. Я застрял на этом в течение недели.
!!!Чего я и добиваюсь!!!
В файле .vbs передать любую строку функции в качестве параметра; и преобразовать его в имя переменной в этой функции. Простой пример: передать строку «abc» в качестве параметра функции -> и внутри этой функции преобразовать строку в имя переменной для сохранения значения [скажем, abc = «PASS»]
!!!Как я пытаюсь это сделать!!!
Я попытался использовать команду «Выполнить», так как это решение, которое я получил из предыдущего сообщения [vbscript Преобразовать строку в переменную в цикле?
Использование "CVar" - это способ, но он не поддерживается в VBScript. Так что у меня закончились идеи
!!!Проблемы с которыми я столкнулся!!!
Честно говоря, я не понял логики использования "Выполнить", но тем не менее попробовал. К сожалению, не получилось. При использовании команды выполнения (как указано в коде) переменные среды становятся пустыми.