在 CMD 中,以下变量将为您提供计算机的名称:%COMPUTERNAME%
我需要一个包含计算机名一部分的变量。
我需要一个 if 语句来检查计算机名是否在开头包含“KM”,在结尾包含 00。它不应该看 KM 和 -00 之间的数字
KM100-00
KM200-00
这在这里有效:
echo %computername%| findstr "^KM.*00$" >nul && echo found the right format
echo %computername%| findstr /I /b "KM" | findstr /i /e "00" && echo computer name is like KM-XX-00
您也可以尝试使用hostname
而不是echo %computername%
您可以使用子字符串命令执行此操作,根据以下记录:
pax> set xyzzy=KM100-00 KM200-00
pax> echo %xyzzy%
KM100-00 KM200-00
pax> echo %xyzzy:~0,2%
KM
pax> echo %xyzzy:~-2,2%
00
pax> if %xyzzy:~0,2%==KM if %xyzzy:~-2,2%==00 echo yes
yes
最后的(链接的)if
语句是您要查找的语句,以查看您的变量是否以 . 开头KM
和结尾00
。
该表达式%X:~Y,Z%
将为您提供从变量的Z
位置(从零开始)开始的字符。您可以提供一个负值以使其相对于字符串的结尾。Y
X
Y
我建议你阅读这个页面,它是关于命令提示符中子字符串的使用。
为什么不试试这个;
set str=KM2000-00
echo.%str%
set pre=%str:~0,2%
echo.%pre%
set pst=%str:~-2%
echo.%pst%
IF %pre% == KM( IF %pst% == 00( echo.true ) )
pause