如何查找字符的位置并使用批处理文件提取字符串的一部分

我的批处理文件读取注册表项的值并将其值存储在变量key中。所以价值恰巧是"H:\KMSpico\KMSpico\Uninst.exe" /u0=KMSpico 。我想提取在""中包含的该字符串的部分。并将其存储在另一个变量中,如uninstall。我可以通过以下代码轻松完成它:SET uninstall=%key:~1,30%。但问题在于,指定Uninst.exe的位置的Uninst.exe之前的部分,即H:\KMSpico\KMSpico\可能会根据用户安装软件的位置而改变,因此要提取的部分的长度可能会改变。但是上面的代码被设置为只能提取字符串最多30个字符。如何查找字符的位置并使用批处理文件提取字符串的一部分

因此,我想知道是否有办法,以便我们知道第二个"的位置,以便知道要提取的字符数。或者如果有另一种方式,就这样做。

回答:

所以你使用的是盗版窗户? :-)

试试这个

@echo off 

rem :: I suppose you are capable to get the value from the registry and save is as variable.

set "reg_key="H:\KMSpico\KMSpico\Uninst.exe" /u0=KMSpico"

for /f "usebackq tokens=1" %%a in ('%reg_key%') do set "uninstaler=%%~a"

echo %uninstaler%

回答:

简单FOR循环蜜饯引用的值作为一个字符串。你知道这是第一个值,所以只需简单的GOTO一个标签就可以在一次迭代后跳出循环。

for %%A in (%key%) do set "uninstall=%%A"&goto :break 

:break

以上是 如何查找字符的位置并使用批处理文件提取字符串的一部分 的全部内容, 来源链接: utcz.com/qa/259864.html

回到顶部