2016-06-06 3 views
0

회사의 랩톱을 용도 변경하는 회사와 협력하며 주문 당 약 20-100 개의 랩톱 주문을받습니다. 우리는 랩탑 자체를 개선 한 후에 새로운 이미지를 설치하지만 자동 명명 스크립트를 작성하는 데 문제가 있습니다. 내가 할 수있는 스크립트를 찾는 임무를 한 다음스프레드 시트에서 랩톱의 일련 번호를 찾는 배치 파일을 만들고 스프레드 시트의 항목에서 호스트 이름의 이름을 바꾸려면 어떻게해야합니까?

  1. 스프레드 시트 또는 CSV 파일에이 일련 번호를 비교하여 노트북
  2. 의 바이오스에서 일련 번호를 읽고 거기에 일련 번호를 찾을 수
  3. 은 다음, 파일에 새 이름을 사용하여 컴퓨터 이름을 변경,
  4. 마지막으로 옆에 일련 번호 란에 원하는 컴퓨터 이름을 찾을 수

CMD 프롬프트에서 각 새 이름을 입력하고 각 컴퓨터를 개별적으로 다시 시작하는 것보다 이름과 일련 번호가있는 큰 스프레드 시트 파일을 작성하는 것이 훨씬 쉽습니다. 필요가있을 경우

지금까지 나는 변수로 일련 번호를 사용하려면 다음 스크립트가 :

for /f "skip=1 delims=" %%J in ('wmic bios get serialnumber') do (set serial=%%J Goto :done) :done

우리가 특정 % 일련 % 입력에게 일련 번호를 입력하면,이 스크립트를 설정 한 후 컴퓨터.

은 또한 다음과 같은 스크립트는 새 이름으로 변수를 사용하여 컴퓨터의 이름을 바꿀 것이라는 점을 알고있다 :

% 변수 %는 우리가 잘하면 스프레드 시트에서 찾을 수있을 것이다 변수

wmic computersystem where caption='%computername%' rename %variable%

. 스프레드 시트에서 찾을 수있는 새 변수 (새 컴퓨터 이름)를 찾는 방법을 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

이 스크립팅을 PowerShell에 기꺼이 쓸 수도 있지만 이전에는 PowerShell을 사용한 적이 없습니다. 이 스크립트를 실행하고있는 랩톱은 깨끗하게 처리해야하며 다운로드하기 전에 다운로드 한 자료가 없으므로이를 염두에 두시기 바랍니다. – Umbrathe

+0

CSV가'SerialNumber, Hostname' 형태로 있다고 가정하면 [FIND] (http://ss64.com/nt/find.html)를 사용하여 CSV에 줄을 가져올 수 있습니다. 컴퓨터 이름을 얻기 위해'FOR'을 사용하여 [split the line] (http://stackoverflow.com/questions/1707058/how-to-split-a-string-in-a-windows-batch-file). – Tim

답변

0

다음은 내가 가지고있는 문제에 사용 된 코드입니다.

for /f "tokens=2 delims==" %%J in ('wmic bios get serialnumber /value') do set serial=%%J 
Find /I "%serial%" {Location of file} > {Location of confirmation file} 
For /f "tokens=1,2* delims=," %%G in ({Location of confirmation file}) do set HN=%%H 
wmic computersystem where caption='%computername%' rename %HN%` 

복잡한 보이지만 텍스트의 선으로 그들은 다음을 수행하십시오

1) 바이오스

2에서 일련 번호를 찾습니다) CSV 파일의 라인을 찾아 전체를 출력 텍스트 문서

3)으로 라인) 가변

4와 같은 텍스트 문서에서 원하는 이름을 설정이 원하는 VAR으로 컴퓨터 이름을 개명 iable 이름