在CMD中,以下变量将为您提供计算机的名称:%COMPUTERNAME%
我需要一个带有计算机名称部分的变量。
我需要一个if语句来检查computername在开始时是否包含“KM”而在结尾时是否包含00。它不应该看KM和-00之间的数字
KM100-00
KM200-00
答案 0 :(得分:3)
这可以在这里工作:
echo %computername%| findstr "^KM.*00$" >nul && echo found the right format
答案 1 :(得分:2)
您可以使用substring命令执行此操作,如以下脚本:
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
,使其相对于字符串的结尾。
答案 2 :(得分:2)
echo %computername%| findstr /I /b "KM" | findstr /i /e "00" && echo computer name is like KM-XX-00
您也可以尝试使用hostname
代替echo %computername%
答案 3 :(得分:1)
我建议你阅读this page,这是关于命令提示符中的子字符串用法。
为什么不尝试这个;
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