Вы не можете передать без кавычек ;
как часть аргумента, потому что PowerShell интерпретирует его как разделитель операторов.
Либо заключать аргумент в "..."
, либо `
- экранировать символ ;
выборочно; Кроме того, пробел после =
может быть или не быть проблемой.
Чтобы сделать вызов (хотя бы синтаксически) успешным, используйте следующее:
& $coveragTool merge /Source="$TestResult1;$TestResult2" /Output=TestMergeOutput.dcvr
В качестве альтернативы (обратите внимание на `
, игнорируйте выделение синтаксиса):
& $coveragTool merge /Source=$TestResult1`;$TestResult2 /Output=TestMergeOutput.dcvr
PowerShell имеет больше так называемых метасимволов , чем cmd.exe
, например, особенно ( ) , { } ; @ $ #
в дополнение к & | < >
- см. этот ответ для дополнительной информации.