Globbing с MinGW в Windows

Мне создали приложение с компилятором C++ MinGW, который работает, что-то как grep - acommand выглядит примерно так:

myapp -e '.*' *.txt

где вещью, которая прибывает после переключателя-e, является regex, и вещью после этого является шаблон имени файла. Кажется, что MinGW автоматически разворачивает (шарики в терминах UNIX) командную строку, таким образом, мой regex искажается. Я могу выключить это поведение, я обнаружил путем установки глобальной переменной _CRT_glob обнулять. Это будет хорошо для удара и других разумных пользователей оболочки, поскольку оболочка развернет шаблон файла. Для MS cmd.exe пользователи однако, похоже, что я должен буду развернуть шаблон файла сам.

Так мой вопрос - кто-либо знает о globbing библиотеке (или средство в MinGW), чтобы сделать частичное расширение командной строки? Я знаю о _setargv функции Windows CRT, но это разворачивает полную командную строку. Обратите внимание, что я видел этот вопрос, но он действительно не обращается к частичному расширению.

Я закончил тем, что использовал условную компиляцию для записи моего собственного кода globbing для версии Windows моего приложения. Это было довольно легко, поскольку у меня есть свой собственный класс CommandLine, который инкапсулирует argc и argv от основного (). Однако, мне было бы интересно слышать о других решениях.

10
задан Community 23 May 2017 в 11:57
поделиться

2 ответа

имеет glob и globfree и множество флагов для glob.

2
ответ дан 4 December 2019 в 04:36
поделиться

Я не уверен, что полностью понимаю вашу проблему здесь, но в Windows вы должны иметь возможность использовать функции FindFirstFile / FindNextFile из WIN32 API. Честно говоря, я не знаю, сопоставимы ли их возможности подстановки с glob (), но вы можете попробовать

0
ответ дан 4 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: