我可以使用dir /s /b *.Tests.*.dll
递归查找与该模式匹配的所有文件,但只有在\bin\Debug\
而不是\obj\Debug\
或{{1}时才需要找到它们}。
所以我尝试了这个命令:
\bin\Release
但它失败了dir /s /b Tests\Unit\*\Debug\bin\*.Tests.*.dll
我无法找到任何解决此问题的SO问题,但如果存在,请指向我。
有没有办法达到预期的效果(在整个路径上应用过滤器)?我的目的是使用该列表在jenkins项目中的每个单元测试程序集上运行NUnit,使用Use NUnit Console Runner to run all tests under a folder中的此命令
The filename, directory name, or volume label syntax is incorrect.
在Linux上,我会使用for /f %%f in ('dir .\test\ /b /s *.Test.dll') do nunit-console /nologo /noshadow /framework:net-4.0 /xml:.\test\TestResults.xml "%%f"
,我试图在这里尝试类似的东西。
我也只需要在父文件夹上应用这个额外的过滤器。如果不可能,我将不得不使用PowerShell。
答案 0 :(得分:1)
FOR /d %%a IN ("%sourcedir1%\*") DO DIR /s /b "%%~a\%sourcedir2%\*.exe" 2>nul
其中sourcedir1
是\*\
和sourcedir2
之后所需路径的一部分。
只需将每个目录依次分配给%%a
,并将其用作第二个dir
答案 1 :(得分:0)
我找到DOS batch script with for loop and pipe,并在那里使用这个想法构建了这个命令:
for /f %f in ('dir /s /b Tests\Unit ^| findstr \\bin\\Debug\\.*\.Tests\..*\.dll$"') do echo %f
不,我只需要将%f
替换为%%f
批处理文件,我可以使用运行nunit的命令替换echo %f
。