我在批处理文件中定义了一个变量,如下所示
set "SERVERNAME=VKR\SQL2012"
我需要从中提取VKR。有没有办法可以做到这一点?
我试过这个
set "value=%SERVERNAME:*\=%"
echo %value%
返回SQL2012但不返回VKR
答案 0 :(得分:3)
当您不知道第一部分的长度时,可以使用FOR /F
分隔符将以\
字符
set "SERVERNAME=VKR\SQL2012"
for /F "tokens=1 delims=\" %%F in ("%SERVERNAME%") do set "pre=%%F"
echo %pre%
答案 1 :(得分:2)
你可以这样做前三个字符(假设它是一个固定的长度):
set "SERVERNAME=VKR\SQL2012"
set "value=%SERVERNAME:~0,3%"
echo %value%
答案 2 :(得分:2)
可悲的是,没有%var:string*=%
。但有一种更好的方法:拆分字符串:
set "SERVERNAME=VKR\SQL2012"
for /f "tokens=1,2 delims=\" %%a in ("%servername%") do echo -%%a- -%%b-
答案 3 :(得分:2)
另一种方式:
set "SERVERNAME=VKR\SQL2012"
set "value=%SERVERNAME:\=" & rem "%"
echo %value%