batch file - WMIC commands to change computer name to BIOS serial number -


i'm new batch file , wmic , after researching stackoverflow i've found few answers overlap not producing expected output when put together.

problem:

create batch file change computer name (not on domain):

  1. use wmic bios serialnumber , assign value variable comp_name, display value of variable;
  2. change computer name value of variable comp_name;

so 1.:

for /f %%f in ('wmic bios serialnumber') ( set comp_name=%%f ) echo %comp_name% 

followed 2.:

wmic computersystem name="%computername%" rename name=%%comp_name%% 

edit: got 1. part correct - works expected - fetching serial number , displays variable's value. part 2. still throwing errors:

o:\>wmic computersystem name="tom-pc" rename name= invalid named parameter list. hint: <named param list> ::= <named param> | <named param> <named param list> <named param> ::= <param name>=<param value> 

if understand correctly - name=... part of last command don't recognise variable initialised above. how use comp_name parameter wmic command?

edit .2

"why using doubled % signs in name=%%comp_name%%?" aschipfl - reverted original question - used double % , getting different error - 87 tells me more problem. using singles % produce error listed above. i'm not sure if problems lies in single or doubles% or somewhere else.

edit .3

further research shows wmic bios serialnumber returns in fact 3 values each in new line

c:\windows\system32>wmic bios serialnumber serialnumber by3vf02 

that - serialnumber string followed actual serial number in new line , last 1 empty line. (i hope) final questions - how assign second value variable please?

give try batch code :

@echo off /f "tokens=2 delims==" %%a in ('wmic bios serialnumber /value') (     /f "delims=" %%b in ("%%a") (         call :renamepc "%%b"          call :ask4reboot     ) ) pause & exit /b ::********************************************************************** :renamepc wmic computersystem name="%computername%" call rename name="%~1" exit /b ::*********************************************************************** :ask4reboot (     echo    set ws = createobject("wscript.shell"^)     echo    answ = msgbox("did want reboot computer ?"_     echo ,vbyesno+vbquestion,"did want reboot computer ?"^)     echo    if answ = vbyes      echo        return = ws.run("cmd /c shutdown -r -t 60 -c ""you need reboot in 1 minute."" -f",0,true^)     echo    else     echo        wscript.quit(1^)     echo    end if )>"%tmp%\%~n0.vbs" start "" "%tmp%\%~n0.vbs" 

Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - IE9 error '$'is not defined -