批量获取MAC地址并创建名称为MAC找到的文件

时间:2015-03-10 19:59:47

标签: windows csv batch-file

我想创建一个批处理脚本,以便在进度的每个部分显示重新映像工作站的状态。我有一个批处理文件,用于从Samba文件夹中获取GHO文件,我想通过在Samba共享上创建.txt文件来展开它以显示重新获取进度。

我的想法是,当流程启动时,批处理文件需要在CSV文件或wks1.confwks2.conf等文件组中查找MAC地址。里面有关于MAC地址和IP地址的信息,用逗号分隔。

当找到MAC地址时,我想创建一个名为工作站名称的.txt文件(如wks1.txt),其中包含一些文本(嘿,我就是那台机器,我的IP地址应该是那个和那个)...

我已经找到批处理文件的一些部分来查找MAC地址,但我不知道如何在CSV文件中查找IP地址。

@echo off
SETLOCAL EnableDelayedExpansion EnableExtensions

rem call :GetIP ip_WLAN "Drahtlos"
rem echo ---
set OS_Version=XP
call :GetIP result  "Ethernet adapter" "Physical"

echo mac=%result%

goto :next

::::::::::::::::::::::::::::
:GetIP <resultVar> <AdapterName>
:: resultVar    return variable for the searched value
:: AdapterName  part of the adapter name
setlocal
set /a found=0
if "%OS_Version%"=="Win7" set ipText=IPv4
if "%OS_Version%"=="Vista" set ipText=IPv4
if "%OS_Version%"=="XP" set ipText=IP-
if "%~3"=="" (
    set searchText=!ipText!
) ELSE (
    set "searchText=%~3"
)
for /F "tokens=1,* delims=:" %%a IN ('ipconfig /all') DO (  
  call :Normalize first "%%a.dummy"
  call :Normalize post "%%b.dummy"

  if "!post!"=="_" (
    if "!first:%~2=!" NEQ "!first!" (
        set /a found=1
        rem echo adapter found "!first!"
    ) ELSE (
        if "!first!" NEQ "_" (
            set /a found=0
            rem echo - !first! !post!
        )
    )
  )

  if !found! EQU 1 (
    rem echo try "!first!"
    if "!first:%searchText%=!" NEQ "!first!" (
        set ipAddr=!post:_=!
        set ipAddr=!ipAddr: =!
        rem echo IP found !post! for adapter
    )
  )
)

(
  endlocal
  set %~1=%ipAddr%
  goto :eof
)

:Normalize
set %~1=_%~n2
goto :eof

:next
set mac=%result%
echo %mac%


for /f "delims=" %%b in ('findstr /i %MAC% "\\10.51.10.10\DDC-    Configuration\*"') do set file=%%b
echo Hey, I am WKS with name %XXX% and I should have this IP %YYY% >         %file%

有一些getmac命令的解决方案,但我不知道它是否可以在WinRE.wim(又名&#34;修复我的电脑&#34;)环境中使用,我想要进行重新成像。

0 个答案:

没有答案