运行 uic 目录中的所有 .ui 文件使用 windows 批处理

Run uic for all .ui files in directory using windows batch

我可以获得 Qt .ui 文件的列表,如下所示:

D:\programing\qtproject\ui\designer>dir *.ui /B
main.ui
mainmenu.ui
mainwindow.ui

我现在做的是我手动 运行 uic 为他们中的每一个,因为 IDE 我正在使用(QtCreator,具有讽刺意味的是 IDE 应该与 Qt 完全兼容)不能做到这一点。

那么我可以 运行 uic 使用从 dir *.ui /B 获得的文件列表吗?如果这在所有子目录上递归工作,我会更喜欢。

好的,我使用一些有用的答案破解了它:

@echo off
rem Runs uic command over all files in all subdirectories
rem For loop arguments explained here: 
rem start command arguments explained here: 
rem       /B is why the start creates no additional windows: 

for /f %%F in ('dir *.ui /S /B') do start "" /B "uic" %%F -o %%~dpFui_%%~nF.h

要禁用递归(子目录),删除 dir 命令中的 /S 参数。