在CMD中,下面的variables会给你计算机的名字:%COMPUTERNAME%
我需要一个variables来获取computername的一部分。
我需要一个if语句来检查计算机名是否在开始时包含“KM”,在结尾是00。 它不应该看KM和-00之间的数字
KM100-00 KM200-00
这在这里工作:
echo %computername%| findstr "^KM.*00$" >nul && echo found the right format
您可以使用子字符串命令来完成此操作,如下所示:
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%
将给出从变量X
位置Y
(从零开始)开始的Z
字符。 您可以提供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
echo %computername%| findstr /I /b "KM" | findstr /i /e "00" && echo computer name is like KM-XX-00
你也可以用hostname
来代替echo %computername%