Аргументы для функций / командлетов PowerShell должны передаваться через пробел, а не через запятую. Последний предназначен только для передачи аргументов объектным методам.
Оператор Qf("*DE")
сначала оценивает выражение группировки ("*DE")
в строку "*DE"
, затем передает эту строку в качестве первого аргумента функции Qf
.
Оператор Qf("*POS02","systemname")
снова сначала оценивает выражение группировки ("*POS02","systemname")
в массив строк "*POS02","systemname"
, а затем передает этот массив в качестве первого аргумента функции Qf
. Из-за этого параметр $objectsearch
имеет значение "*POS02","systemname"
, а параметр $objectcolom
имеет (по умолчанию) значение "company"
.
Изменить это:
Q("SELECT * FROM machine WHERE ID LIKE '%111'")
Qf("*DE")
Qf("*POS02","systemname")
в это:
Q "SELECT * FROM machine WHERE ID LIKE '%111'"
Qf "*DE"
Qf "*POS02" "systemname"
и проблема исчезнет.