gpt4 book ai didi

c++ - 是否有 WinAPI 可以从带有可选空格和其他参数的命令行获取文件名?

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:11 26 4
gpt4 key购买 nike

我的目标是从命令行调用/字符串中获取文件名。例如,如果我在输入中有以下字符串:

C:\WINDOWS\system32\mstsc.exe /v:%WKSNAME% /f
"C:\Users\User Name\Desktop\My Program.exe" /?

API 应分别返回以下内容:

mstsc.exe
My Program.exe

所以我尝试使用splitpath函数,虽然它适用于非常简单的文件路径,但在我上面的两个示例中它完全失败了。

我知道我可以编写自己的解析器(所以请不要提供它。)我很好奇是否已经有一个内置的 Windows API 可以做到这一点?

附言。必须有一个操作系统在内部使用来解析它们。

PS2。这是我一直在玩弄的代码:

TCHAR buffFileName[MAX_PATH];
TCHAR buffExt[MAX_PATH];

LPCTSTR strInputPath = L"C:\\WINDOWS\\system32\\mstsc.exe /v:%WKSNAME% /f";
if(_tsplitpath_s(strInputPath, NULL, 0, NULL, 0, buffFileName, MAX_PATH, buffExt, MAX_PATH) == 0)
{
//Got something
}

最佳答案

我相信PathFindFileName可能是你要找的。来自文档:

Searches a path for a file name.

文档中的示例似乎显示了您描述的确切行为。


如果您想解析整个命令行,CommandLineToArgvW可能会有帮助。它采用命令行并将其拆分为包含文件名和任何参数的数组。

此函数的解析规则相当复杂,因此请务必查看文档,但可以在 this answer 中找到对它们的简单解释。 .

关于c++ - 是否有 WinAPI 可以从带有可选空格和其他参数的命令行获取文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36684432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com