首页 > 解决方案 > 如何在bat中获取特定路径下的lib文件列表?

问题描述

这是我的bat文件:

setlocal EnableDelayedExpansion
set DebugLibNames=
for /f "delims=" %%a in ('"dir /s/b *.lib ..\3rdlib\Debug\ 2>nul"') do (
    set DebugLibNames=%%DebugLibNames%%, %%a
)

echo DebugLibNames:%DebugLibNames%

call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
lib.exe /OUT:world.lib %DebugLibNames%

pause

我想要的是获取一个 lib 文件名列表,然后使用 lib.exe 将它们打包到一个大 lib 中。

但是,DebugLibNames 是空的,我该如何解决?

标签: windowsbatch-filecmdcommand-line

解决方案


这未经测试,但似乎可能有效或接近。:-)

powershell -NoLogo -NoProfile -File 'Do-It.ps1'

=== Do-It.ps1

$DebugLibNames = Get-ChidItem -Path @('.', '..\3rdlib\Debug') -Filter '*.lib' -ErrorAction SilentlyContinue
Write-Host "DebugLibNames:$($DebugLibNames -join ', ')"
& "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
& lib.exe /OUT:world.lib $($DebugLibNames -join ', ')"

pause

推荐阅读