2014-04-29 54 views
0

問題IM面臨的,是我想它的工作就像這個批處理腳本:Windows批處理檢查主機包含四個或三個字符然後做

檢查計算機的主機名

  1. 如果計算機主機名啓動與A405或A408或A410或A417或LAS(我紅色,我可以使用%VAR:0,4%或類似的檢查前4個字符的完整主機名,爲LAS其3個字符 - 所有電腦主機名像這樣%CLASSROOM% - %PCNUM%)
  2. 然後從網絡磁盤啓動相應的reg文件(每個regfile禁用PROXY和設置爲每個類新的默認和不同的網頁,regfiles已經完成) A405 - >記者:/1.reg A408 - >記者:/2.reg 等
  3. 與-k是啓動Internet Explorer後啓用。 (開始IEXPLORE -k)

,但我不能讓如何讓%計算機%的變量,因爲一套主機=%計算機%,返回%計算機%不工作站的實際名稱,以及如何檢查以前陳述 - %主機: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,3%'注意到'〜' – jeb

回答

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 
+0

我有2個附加的子問題: 1)regfiles的命名,將1.reg = 405 ,2.reg = 408等? 或將它只適用於4char A405-A417 1 reg文件和LAS 1 reg文件?> 2)在找到實例後,如何安全地繼續,添加啓動iexplore -k?或者我只是添加回聲主機名發現後,「暫停」,然後最後一個命令行?> – ivarzLV

+0

1)我遵循您的指示:A405-> 1.reg,A408-> 2.reg,我認爲「etc」意思是: A410-> 3.reg,A417-> 4.reg和LAS-> 5.reg,但是如果您指定了要更改它的方式(我還假定可能有幾個3個字符的名稱),則可能會更改此選項。 2)是的,只需在正確的位置插入以下命令即可... – Aacini

相關問題