Как мне избежать вывода данных на стандартный вывод в возвращаемом значении?

При выполнении некоторой автоматизации Powershell у меня возникают проблемы с тем, как данные, записываемые в стандартный вывод с помощью файла .cmd , автоматически захватываются . У меня есть две функции, которые делают что-то вроде следующего:

function a {
    & external.cmd # prints "foo"
    return "bar"
}

function b {
    $val = a
    echo $val # prints "foobar", rather than just "bar"
}

По сути, данные, которые external.cmd отправляет в stdout, добавляются к возвращаемому значению a , хотя все, что я действительно хотите вернуться из a - это указанная мной строка. Как я могу предотвратить это?

13
задан JSBձոգչ 11 January 2011 в 18:04
поделиться