![](/img/trans.png)
[英]Passing arguments to Call operator (&) as a string in PowerShell
[英]Wildcard in powershell string for call operator
在powershell脚本中,我需要像这样调用一个函数
$SpecRunCall = "./packages/SpecRun.Runner.1.2.0/tools/SpecRun.exe"
$MSTestArguments = @('run', 'Default.srprofile', "/baseFolder:.\TestResults", '/log:specrun.log')
if($tag) {
$MSTestArguments += '/filter:@' + $tag
}
& $SpecRunCall $MSTestArguments
但是我必须把SpecRun Runner的版本放在那里,我想为它设置一个通配符,然后找到我所拥有的任何版本(假设我只有一个版本),但我很难找到适合它的工作解决方案。
谢谢,
假设唯一的版本存在, Resolve-Path ...SpecRun.Runner.*...
应该工作:
$SpecRunCall = Resolve-Path ./packages/SpecRun.Runner.*/tools/SpecRun.exe
假设所有SpecRunner
版本都在标有版本号的不同文件夹中,您可以进行以下操作。 并且一次只有一个版本文件夹将在计算机上。
$version = "1.1.0","1.2.0","1.3.0"
$SpecRunCall = $null
$version | Foreach {
# Set spec runner version folder
$SpecFolder = "./packages/SpecRun.Runner.$_/"
# Test folder
If(Test-path $SpecFolder){
# Version folder found use it
$SpecRunCall = $SpecFolder+"tools/SpecRun.exe"
}
}
# Check if a version was found
If($SpecRunCall -ne $null){
# ** Your code **
$MSTestArguments = @('run', 'Default.srprofile', "/baseFolder:.\TestResults", '/log:specrun.log')
If($tag) {$MSTestArguments += '/filter:@' + $tag}
& $SpecRunCall $MSTestArguments
}
此代码将获取版本号列表并查找相应的SpecRunner
文件夹。 如果发现选择了SpecRunner
版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.