7

在 CMD 中,以下变量将为您提供计算机的名称:%COMPUTERNAME%

我需要一个包含计算机名一部分的变量。

我需要一个 if 语句来检查计算机名是否在开头包含“KM”,在结尾包含 00。它不应该看 KM 和 -00 之间的数字

KM100-00
KM200-00
4

4 回答 4

5

这在这里有效:

echo %computername%| findstr "^KM.*00$" >nul && echo found the right format
于 2013-09-10T08:38:34.753 回答
2
echo %computername%| findstr /I /b "KM" | findstr /i /e "00" && echo computer name is like KM-XX-00

您也可以尝试使用hostname而不是echo %computername%

于 2013-09-10T08:29:20.493 回答
2

您可以使用子字符串命令执行此操作,根据以下记录:

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位置(从零开始)开始的字符。您可以提供一个负值以使其相对于字符串的结尾。YXY

于 2013-09-10T07:41:32.817 回答
1

我建议你阅读这个页面,它是关于命令提示符中子字符串的使用。

为什么不试试这个;

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
于 2013-09-10T07:41:31.613 回答