如何查找字符的位置并使用批处理文件提取字符串的一部分
我的批处理文件读取注册表项的值并将其值存储在变量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