![在 CMD 中,提取某个字符后的子字符串(如果存在),否则返回整个字符串](https://linux22.com/image/1571242/%E5%9C%A8%20CMD%20%E4%B8%AD%EF%BC%8C%E6%8F%90%E5%8F%96%E6%9F%90%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%90%8E%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%88%E5%A6%82%E6%9E%9C%E5%AD%98%E5%9C%A8%EF%BC%89%EF%BC%8C%E5%90%A6%E5%88%99%E8%BF%94%E5%9B%9E%E6%95%B4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我正在尝试找到最简单的方法,在 CMD 中,在字符串中提取/
或(以最后出现的为准)(如果找到的话)。\
例如:
输入
apiserver_sdk
预期的
apiserver_sdk
或者
输入
D:/dev/some/folder/GO/projectName
预期的
projectName
我对实际编程语言中的 substr、substring 非常熟悉,但对 CMD 等 shell 语言中的 substr、substring 不太确定。
答案1
这是一个可行的方法:
echo %string% | findstr " / \ " >nul && for %%A in (%string%) do set string=%%~nA
before: apiserver_sdk
after: apiserver_sdk
before: D:/dev/some/folder/GO/projectName
after: projectName
before: c:\one\two three\four five
after: five
before: "c:\one\two three\four five"
after: four five