我有以下PowerShell
代码:
$HOME_DIR=[Environment]::GetEnvironmentVariable("HOME")
$WORKING_PATH="C:\tests\automation"
$TOOLS_PATH="$WORKING_PATH\Tools"
Start-Process -FilePath "$HOME_DIR\perl\perl.bat" "$TOOLS_PATH\my_perl_script.pl" -ArgumentList 'arg1' 'arg2' -NoNewWindow
我收到错误:
Start-Process : A positional parameter cannot be found that accepts argument 'C:\tests\automation\Tools\my_perl_script.pl'.
At C:\RunUIAutomaionTests.ps1:46 char:14
+ Start-Process <<<< -FilePath "$HOME_DIR\perl\perl.bat" "$TOOLS_PATH\my_perl_script.pl"
-ArgumentList 'arg1' 'arg2' -NoNewWindow
  + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
  + FullyQualifiedErrorId :<br>  PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
我缺少什么?我应该如何使用my_perl_script.pl
使用参数perl.bat
和'arg1'
执行'arg2'
?
答案 0 :(得分:0)
为什么这么复杂? 您可以像这样直接调用perl: ...
$ TOOLS_PATH = “$ WORKING_PATH \工具” ...
perl $ TOOLS_PATH \ my_perl_script.pl arg1 arg2
确保perl可执行文件位于Windows路径