Computernamevariables在cmd中

在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%