我在版本化的目录中有一个可执行文件,因此更新工具时目录会更改。
我运行的当前命令如下:
.\packages\Chutzpah.4.1.0\tools\chutzpah.console.exe .\Tests\chutzpah.json
我想做以下事情:
.\packages\Chutzpah**\tools\chutzpah.console.exe .\Tests\chutzpah.json
Windows命令行doesn't like to expand wildcards但我希望PowerShell能够实现这一点。
答案 0 :(得分:4)
这里的简单回答可能是使用resolve-path
解析路径中的通配符,并显示路径内容。
所以在实践中你应该能够做到这样的事情。
$path = Resolve-Path ".\packages\Chutzpah**\tools\chutzpah.console.exe" -Relative
& $path ".\Tests\chutzpah.json"
请注意,Resolve-Path
有可能匹配更多的东西。
答案 1 :(得分:0)
实际上,Windows会扩展通配符,但如果非通配符部分不是唯一的,那么你将获得(我认为)FIRST匹配。
所以我认为你的问题确实是
“我如何判断我应该执行哪个版本”
如果您有项目文件等,则可以从那里提取。
实际上,您可能希望从解决方案packages.config文件中提取一些内容,假设存在。\ packages \前缀,因为您希望对NuGet包中的文件运行测试。
您能提供更多详情吗?
编辑: 好的,所以你可能需要做类似System.IO.Directory.GetDirectories(path,pattern)的事情 https://msdn.microsoft.com/en-us/library/6ff71z1w(v=vs.110).aspx
根据您使用“Chutzpah”所做的事情,您将获得一个或多个可用于选择正确路径的匹配。