Windows Batch检查主机名,如果包含四个或三个字符,那么

时间:2014-04-29 19:43:01

标签: windows file batch-file

我面临的问题是,我想要一个像这样工作的批处理脚本:

检查计算机主机名

  1. 如果计算机主机名以A405或A408或A410或A417或LAS开头(红色,我可以使用%var:0,4%或类似于检查前4个字符的完整主机名,对于LAS 3字符 - 所有的pc主机名都是这样的%CLASSROOM% - %PCNUM%)
  2. 然后从网络磁盘启动相应的reg文件(每个regfile禁用PROXY并为每个类设置一个新的默认和不同的主页,注册文件已经完成) A405 - >记者:/1.reg A408 - >记者:/2.reg 等
  3. 启动-k后启动Internet Explorer。 (开始iexplore -k)
  4. 但我无法得到如何使%computername%变量,因为设置host =%computername%,返回%computername%而不是工作站的实际名称,以及如何使用之前声明的方法检查 - %host:0 ,4%,对于LAS,%主机:0,3%并检查前4个字符。 如果我不能让自己足够清楚,我很抱歉。

    我尝试使用SO中的这个脚本:

    @echo off
    
    rem Change this for testing, remove for production
    set computername=xyz
    
    set dropLoc=machine-abc
    
    if "%computername%" == "xyz" (
      set dropLoc=machine-xyz
    )
    
    echo %dropLoc%
    

    但我不能这样做。

1 个答案:

答案 0 :(得分:0)

@echo off

rem Check "%computername%" vs. 4 chars. long names:
set regFile=0
for %%a in (A405 A408 A410 A417) do (
   set /A regFile+=1
   if "%computername:~0,4%" equ "%%a" goto found
)

rem Check "%computername%" vs. 3 chars. long names:
for %%a in (LAS) do (
   set /A regFile+=1
   if "%computername:~0,3%" equ "%%a" goto found
)

echo No matching hostname found
goto :EOF

:found
echo Hostame found, reg file: J:/%regFile%.reg