我想创建一个批处理脚本,以便在进度的每个部分显示重新映像工作站的状态。我有一个批处理文件,用于从Samba文件夹中获取GHO文件,我想通过在Samba共享上创建.txt
文件来展开它以显示重新获取进度。
我的想法是,当流程启动时,批处理文件需要在CSV文件或wks1.conf
和wks2.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;)环境中使用,我想要进行重新成像。