如何使用powershell模式匹配来查找和运行.bat文件

时间:2017-11-25 10:59:33

标签: windows powershell batch-file

我是一个powershell noob,尽管我的谷歌搜索技巧,我一直无法找到如何根据powershell中的模式找到文件的目录,然后运行该文件。

这些是要求......

  • 从特定文件夹(C:\ TFS)
  • 开始
  • 在该文件夹中搜索名为“SpecFlow.bat”的特定批处理文件并返回文件夹和文件路径
  • 从上一步返回的目录中运行该文件

我有这样的事情,但我真的不知道我在做什么

Set-Location -Path C:\TFS
$a = Get-ChildItem C:\TFS -Filter SpecFlow.bat -Recurse | % { $_.FullName }
Start-Process $a

这似乎找到并运行该文件,但在“C:\ TFS”目录中。因此,我在cmd窗口中收到以下错误...

C:\TFS>SpecRun.exe run default.srprofile /basefolder:..\..\bin\release /outputfolder:output /report:MyReport.html
'SpecRun.exe' is not recognized as an internal or external command,
operable program or batch file.

我哪里错了?

对于奖励积分,我可以将我的批处理文件转换为所有PowerShell吗?批处理文件的内容是....

SpecRun.exe run default.srprofile /basefolder:..\..\bin\release /outputfolder:output /report:MyReport.html

暂停

与SpecRun.exe在同一目录中存在相关文件。

由于

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$file = Get-ChildItem -Recurse | Where-Object {$_.name -eq "SpecFlow.bat"}
cd $file.directory
StartProcess $file