강좌 / 팁

윈 도 우 추가)PE 우측하단 워터마크에 각종 정보 넣기

2020.06.16 00:31

히이이잌 조회:2962 추천:25

예전에도 올린적 있는데, 몇가지 더 알아낸 내용을 보충하여 올립니다.

지난 글 : https://windowsforum.kr/lecture/12816784 (지난 글의 내용도 포함하여 올렸으므로 따로 보실 필요는 없습니다.)

 

저도 꽤 오랫동안 많은 시행착오와 검색을 통해 알아낸것들이라, 까먹기 전에 정리할겸 정리해서 올립니다.

 

2.JPG

0.jpg

PE의 BCD에 '테스트 모드'를 체크하면 워터마크가 표시됩니다.

PE에 그래픽 드라이버등 서명되지 않은 드라이버를 설치하려면 테스트 모드를 켜야하는데,

은근히 보기 싫어서 차라리 어떻게 써먹을 방법이 없을까 생각하다가 만들어봤습니다.

 

 

 

*WMIC 명령어들을 사용합니다. 다이어트가 많이 된 PE에선 작동하지 않을 수 있습니다.

 

수정 방법

mui 파일 수정은 resource hacker가 필요합니다. http://www.angusj.com/resourcehacker/

 

 

첫번째 줄 (테스트 모드)

X:\Windows\system32\ko-KR\shell32.dll.mui

1st.jpg

약 70자 정도를 넘어가면 짤려서 표시되지 않는듯 합니다. 긴 내용을 적고 싶은 경우 부팅해서 테스트해보셔야합니다.

shell32.dll.mui는 '다른 프로그램에서 열려 있으므로 작업을 완료할 수 없습니다" 라고 뜨며 부팅된 이후에 수정할 수 없습니다.

기본적인 PE의 정보나 주의사항등을 적기에 적합합니다.

 

 

2번째 줄 (제품 이름)

X:\Windows\branding\basebrd\ko-kr\basebrd.dll.mui

2nd.jpg

Basebrd.dll.mui는 부팅된 이후에도 수정이 가능합니다. 수정된 이후에 탐색기(explorer.exe)또는 DWM.exe을 재시작하면 됩니다.

 

배치파일로 rc 파일을 작성한 다음, resource hacker를 통해 res로 컴파일한 후 mui 파일을 수정하여 적용할 수 있습니다.

아래에서 빨간색 글씨 부분만 수정하시면 됩니다.

 

::리소스 해커 경로 지정

set rh="X:\Program Files\ResourceHacker\ResourceHacker.exe"

 

::입력할 문구 입력

set TEXT=Sample text

 

::리소스 해커에서 사용할 RC파일 생성

echo STRINGTABLE>"%temp%\StringTable20.rc"

echo LANGUAGE LANG_KOREAN, SUBLANG_KOREAN>>"%temp%\StringTable20.rc"

echo {>>"%temp%\StringTable20.rc"

echo   314, "%text%%%1%%2">>"%temp%\StringTable20.rc"

echo   315, "%text%%%1%%2">>"%temp%\StringTable20.rc"

echo   316, "Windows 10 Enterprise Evaluation%%1%%2">>"%temp%\StringTable20.rc"

echo   317, "Windows 10 Enterprise Evaluation%%1%%2">>"%temp%\StringTable20.rc"

echo   318, "Windows 10 Enterprise N%%1%%2">>"%temp%\StringTable20.rc"

echo   319, "Windows 10 Enterprise N%%1%%2">>"%temp%\StringTable20.rc"

echo }>>"%temp%\StringTable20.rc"

 

::리소스 해커로 rc파일 res로 컴파일

%rh% -open "%temp%\StringTable20.rc" -save "%temp%\StringTable20.res" -action compile

 

::리소스 해커로 mui파일 수정

%rh% -open "X:\Windows\Branding\Basebrd\ko-KR\basebrd.dll.mui" -save "X:\Windows\Branding\Basebrd\ko-KR\basebrd.dll.mui" -action addoverwrite -res "%temp%\StringTable20.res" -mask 

 

taskkill.exe /f /im dwm.exe

 

세번째 줄 (빌드 번호)

3rd.jpg

레지스트리 값을 수정해주시면 됩니다. 가장 쉽게 reg.add 명령만으로 수정이 가능합니다.

reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "표시할 내용" /f

127.jpg

가상머신에서 테스트했을 때 기준으로 두번째, 세번째줄의 글자 수 제한은 한/영 공백 관계없이 127글자입니다.

 

맨 앞에 Build가 붙는게 거슬린다면 

3rd-b.jpg

1번째줄을 수정할때 편집했던 shell32.dll.mui의 STRINGTABLE,2070 부분에서 %ws Build %ws를 %ws %ws 로 바꿔주시면 됩니다.

 

 

 

 

sample.jpg

위 내용들을 활용한 예시입니다.

 

수집중 메시지는 미리 Wim파일 내부의 파일들을 수정해놓았고,
배치파일로 정보를 수집한 후 수정, 탐색기 재시작을 통해 적용하였습니다.

 

 

설치된 운영체제 표시

OS : Windows 7 Enterprise (0:1 C:40GB) / 

OS : 설치된 운영체제 (디스크번호:파티션번호 드라이브문자:용량) / 

C~W 드라이브 중에서 Windows\system32\config 폴더가 있는 드라이브 문자를 알아낸 다음

해당 드라이브의 레지스트리 하이브를 불러와서 운영체제 정보를 읽습니다.

드라이브 문자를 diskpart 명령어에 대입하여 몇번째 디스크, 몇번째 파티션인지, 용량이 몇인지 알아냅니다.

s2.jpg

운영체제가 여러 드라이브에 설치되어있는 경우 뒤에 이어붙여서 표시합니다.

 

::변수 초기화, 각종 오류를 막기 위해 사용하려는 변수를 미리 비워놓는 습관을 들이면 좋습니다.

SET "WinDrvS="

::윈도우 설치된 드라이브 찾기, WinDrvS 변수에 Windows가 들어있는 드라이브의 문자를 쌓습니다.

::SET 변수=변수 %%a 와 같이 입력하였기에 기존값+새로운 값이 중복되어 등록되므로 결과값들이 쌓이게 됩니다.

for %%a in (C D E F G H I J K L M N O P Q R S T U V W Y ) do (

if exist "%%a:\windows\system32\config" set WinDrvS=!WinDrvS! %%a

)

 

:: 윈도우 찾을 수 없으면 (WinDrvS 변수에 저장된 값이 없으면) NA표시

IF "%WinDrvS%" EQU "" (

set "WinName= N/A"

GOTO SKIP_WinName

)

 

::설치된 윈도우 정보 수집, 위 명령과 비슷한 명령인데 C D E F G...대신에 WinDrvS(윈도가 들어있는 드라이브 문자)를 넣은것입니다.

For %%B in (%WinDrvS%) do (

::Diskpart 명령을 통해 용량, 디스크, 파티션 번호를 알아냅니다.

::%Tcapa%=용량, %WINDISK%=디스크번호, %WINPAR% 파티션 번호 입니다.

(echo sel vol %%B

echo det vol

echo lis par

echo exit

) | diskpart>"%temp%\vol%%B.txt"

for /f "tokens=3 usebackq delims= " %%a in (`"find "* 디스크" "%temp%\vol%%B.txt""`) do set WINDISK=%%a

for /f "tokens=3 usebackq delims= " %%b in (`"find "* 파티션" "%temp%\vol%%B.txt""`) do set WINPAR=%%b

for /f "tokens=1-2 delims=: usebackq" %%a in ("%temp%\vol%%B.txt") do (if "%%a" EQU "볼륨 용량        " set Tcapa=%%b)

SET Tcapa=!Tcapa: =!

::설치된 운영체제 제품명을 알아내기 위해 윈도우 드라이브 (%%B:\)의 레지스트리 하이브를 탑재합니다.

REG LOAD HKLM\Tmp_SFT "%%B:\windows\system32\config\SOFTWARE"

::레지스트리 쿼리 명령을 통해 제품명을 변수에 저장합니다. 

 

 

::괄호 사이에 주석을 넣으면 오히려 더 햇갈릴까봐 여기에 몰아서 적습니다. 

::결과값이 여러줄로 나오므로, 필요없는 값이 저장되는것을 막기 위해
::
%%I EQU "    productname    " 명령을 썻습니다.

::이 경우 첫번째 토큰이 productname인 경우에만 %%J의 값을 %WinName2% 변수에 저장합니다.
::밑줄 친 부분은 %
WinName2% 변수의 공백을 지우는 명령입니다.

::WinDrvS에 썻던것과 같은 요령으로 여러 드라이브에 운영체제가 있는 경우에 결과값을 %WinName% 변수에 이어붙입니다.

 

FOR /F "TOKENS=1* DELIMS=REG_SZ USEBACKQ SKIP=1 " %%I IN (`Reg query "HKLM\Tmp_SFT\Microsoft\windows NT\CurrentVersion" /v "productname"`) DO (

IF "%%I" EQU "    productname    " (

SET WinName2=%%J

FOR /F "TOKENS=* DELIMS= " %%Z IN ("!WinName2!") DO SET WinName2=%%Z

SET "WinName=!WinName! !WinName2! (!WINDISK!:!WINPAR! %%B:!Tcapa!)"

)

)

REG UNLOAD HKLM\Tmp_SFT

)

 

::윈도우 없으면 여기로 건너뜀

:SKIP_WinName

 

 

IP주소 표시

단순한 ipconfig 명령어에 첫번째 IP주소만 표시하기 위한 약간의 명령어가 추가되어 있습니다.

 

::현재 IP주소, 인터넷 연결 안된 경우엔 -.-.-.-로 표시되도록 기본값 설정

SET "IP_Ad=-.-.-.-"

FOR /F "TOKENS=2 DELIMS=: USEBACKQ" %%F IN (`IPCONFIG ^| FINDSTR /C:"IPv4 주소"`) do set IP_Ad=%%F

 

::앞에 공백 제거

FOR /F "TOKENS=* DELIMS= " %%A IN ("%IP_Ad%") DO SET IP_Ad=%%A

 

BIOS 타입 표시

::PE 빌더에 들어있는 코드를 약간 수정한것입니다.

wpeutil.exe UpdateBootInfo

For /f "tokens=2* delims= " %%A in ('Reg Query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') Do Set Firmware=%%B

 

::나중에 불러올 수 있도록 BTYPE 변수에 저장해놓기

If %Firmware%==0x1 set BTYPE=LEGACY

If %Firmware%==0x2 set BTYPE=UEFI

 

CPU 모델명, 물리코어와 논리코어의 갯수

::CPU 모델명

for /F "tokens=* skip=1" %%n in ('wmic cpu get name ^| findstr "."') do set "CNAME=%%n"

 

::모델명 뒤 공백 지우기

set CNAME=%CNAME%##

set CNAME=%CNAME:        ##=##%

set CNAME=%CNAME:    ##=##%

set CNAME=%CNAME:  ##=##%

set CNAME=%CNAME: ##=##%

set CNAME=%CNAME:##=%

 

::CPU 물리 코어 수

for /F "tokens=* skip=1" %%n in ('wmic cpu get NumberOfCores ^| findstr "."') do set "PCORE=%%n"

set PCORE=%PCORE: =%

 

::CPU 논리 코어 수 / echo %CNAME% (%PCORE%C%LCORE%T)의 결과값 예시는 I7-5775C (4C8T) 입니다.

for /F "tokens=* skip=1" %%n in ('wmic cpu get NumberOfLogicalProcessors ^| findstr "."') do set "LCORE=%%n"

set LCORE=%LCORE: =%

 

RAM 용량

:: 총 메모리 용량

for /F "tokens=* skip=1" %%n in ('wmic ComputerSystem get TotalPhysicalMemory ^| findstr "."') do set "TM=%%n"

set TM=%TM: =%

 

::32비트 계산 한계 초과로 끝자리 날리고 계산

set TM3=0

set TM2=%TM:~,-2%

set /a TM3=%TM2%/10737418

IF %TM3% EQU 0 (

set TM2=%TM:~,-3%

set /a TM3=%TM2%/1073742

)

 

::총 메모리 용량은 %TM% 변수에 저장되며 단위는 GB입니다. 예시 : echo %TM%GB

::끝자리를 날리고 계산하기때문에 1씩 모자란 값이 나와서 1을 더해줘야합니다.

::이론상 약 250GB까지 정확하게 표시됩니다.

:: 참고용 파일 : 메모리계산.xlsx

set /a TM=%TM3%+1

 

 

그래픽카드 정보

그래픽카드 정보는 그래픽카드 드라이버가 설치돼야 읽어올 수 있습니다.

따라서 부팅 직후에 실행되게 하면 안되고 드라이버팩 등으로 설치된 이후에 실행되도록 조절해주셔야합니다.

아래 예시에선 설치된 경우에만 레지스트리 값을 한번 더 덮어씌웁니다.

 

::변수 초기화

set "GNAME=0"

:: 그래픽카드 모델명 조회, 얻은 값이 없으면 SKIP_GPU로 이동 (생략)

for /F "tokens=* skip=1" %%n in ('WMIC path Win32_VideoController get Name ^| findstr "."') do set GNAME=%%n

IF "%GNAME%" EQU "0" goto SKIP_GPU

::뒤에 공백 제거

set GNAME=%GNAME%##

set GNAME=%GNAME:                ##=##%

set GNAME=%GNAME:        ##=##%

set GNAME=%GNAME:    ##=##%

set GNAME=%GNAME:  ##=##%

set GNAME=%GNAME: ##=##%

set GNAME=%GNAME:##=%

::Microsoft 기본 어댑터 등 의미없는 정보일 경우 SKIP_GPU로 이동 (생략)

echo %GNAME%|findstr Microsoft&&SET GNAME=0&&goto SKIP_GPU

IF "%GNAME%" EQU "Microsoft Basic Display Adapter" SET GNAME=0&&goto SKIP_GPU

IF "%GNAME%" EQU "Microsoft 기본 디스플레이 어댑터" SET GNAME=0&&goto SKIP_GPU

::PE용 드라이버팩으로 드라이버를 설치했을때 장치 이름 앞에 붙는 (PE64) 등의 불필요한 문구 제거

echo %GNAME%|findstr (PE64)&&set GNAME=%GNAME:(PE64) =%

echo %GNAME%|findstr (PE64)&&set GNAME=%GNAME:(PE64)=%

echo %GNAME%|findstr Vulkan&&set GNAME=%GNAME:Vulkan=%

:: GNAME 변수에 0이 아닌 뭔가 저장되어있을때만 레지스트리에 등록, %GNAME% 변수에 모델명이 저장됩니다.

IF "%GNAME%" NEQ "0" (

reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "CPU : %CNAME% (%PCORE%C%LCORE%T) / RAM : %TM%GB / GPU : %GNAME%" /f

)


PE의 빌드 번호 (1909, 1903, 2004 등등)

::ReleaseID 찾기 / %RID% 변수에 1909등의 숫자가 저장됩니다.

for /f "tokens=1-4 usebackq delims= " %%i IN  (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V "ReleaseID"`) do set "RID=%%k"

 

 

등록 예시

s3.jpg

1번째 줄

shell32.dll.mui

부팅 이후에 수정할 수 없습니다. 3번째줄의 'Build'제거 포함 수정된 파일입니다.

(1909, 19H2 x64 파일로 만들었습니다. 다른 PE에 적용되는지 확인 안해봤습니다.)

2번째 줄

set "TEXT=OS :%WinName% / IP : %IP_Ad% / BIOS : %BTYPE%"

3번째 줄

reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "CPU : %CNAME% (%PCORE%C%LCORE%T) / RAM : %TM%GB / GPU : %GNAME%" /f

 

 

 

 

참고한 사이트

https://www.askvg.com/show-your-desired-text-on-desktop-by-customizing-windows-vista-build-number/?__cf_chl_captcha_tk__=2ebac396d786a0b1eec17fb5c9e64c6c583b7117-1592230839-0-AfbHf053iwbn0dWowMKMZK4u-qN86xsIXnOllMQDTvhKsTijPSFDjTSPWDfQ5mcj4_nfarxRmk3ywxBeELX5u7UWQwf_Pkl9cDf28rsyX0ERSKb8ERwaBUCD36-zCtrlKW9sYldAtqkOiDR06e6n0MzxXgq4ypRh0csnn33yvtbt3RVxncYomiSfV0oY54Vj7FSs-HlihhTNTFT8tiSp2akBiPmoGHoDDFteAvvfYIVp9ZjDtFAP23ZjBluNpHFxCC8axYMvo-8-Rl7siZ9uRstg2IiR9vkhIumtL2efiXPVs0Qk6YnNKhymsA0nkst2b7R89WBBVtDSb9VENN63zEXJHX236GQI2q_Fn70BheBHOj0JuH5woAYdxEUbf6OteVBMrvpxwtXdVkF9PXg4ESWzRotGb0jbA3blYQmK2p5HTruZ4g6yAPAAglGM5i-q5F3EtmlAQ_OsCLP6O0_nZUIKps99vEh87U4j0FrHIuX6PUTcKMhBvDEU8KYlEGi9nvlvavCc-5pZrW9AeOZjfaevRc9OSty4NwEMfrca7XqkjHse4sNqjbc0sd-8EGzzDVkMOKUIS0armFvegaAjaqE

 

https://www.sevenforums.com/tutorials/212819-test-mode-windows-7-build-7601-watermark-remove-desktop-4.html

 

https://stackoverflow.com/questions/16985518/batch-file-for-running-diskpart

 

https://stackoverflow.com/questions/5898763/how-do-i-get-the-ip-address-into-a-batch-file-variable

 

https://www.dostips.com/DtTipsStringManipulation.php#

 

https://superuser.com/questions/989774/set-startup-script-in-winpe-to-show-in-which-mode-the-pc-has-booted

 

https://comfix.kr/234

 

 

 

 

 

 

 

 

 

 

 

 

그냥 생각나는대로 추가해놓고 나중에 정리하겠습니다. 관심있는분만 참고하세요.

 

메인보드 정보

 

:: 메인보드 제조사

set MBMF=0

::1번 토큰만 빼서 짧게 변환

for /F "tokens=1 skip=1" %%n in ('wmic baseboard get manufacturer ^| findstr "."') do set "MBMF=%%n"

set MBMF=%MBMF:Hewlett=HP%

set MBMF=%MBMF:ASUSTek=ASUS%

set MBMF=%MBMF:MICRO-STAR=MSI%

set MBMF=%MBMF: =%

 

:: 메인보드 모델명

set MBPR=0

for /F "tokens=* skip=1" %%n in ('wmic baseboard get product ^| findstr "."') do set "MBPR=%%n"

for /F "tokens=1 skip=1" %%n in ('wmic baseboard get product ^| findstr "."') do set "MBPRs=%%n"

set MBPR=%MBPR%##

set MBPR=%MBPR:  ##=##%

set MBPR=%MBPR: ##=##%

set MBPR=%MBPR:##=%

echo on

SET "MoBo=%MBMF% %MBPR%"

SET "MoBos=%MBMF% %MBPRs%"

::MBPRs는 글자 수 넘칠때만 사용하는 짧은 이름, 대부분의 경우 칩셋명까지만 나옴

 

 

 

::설치된 윈도우 정보 수집 - 운영체제32/64 구분 추가

For %%B in (%WinDrvS%) do (

(echo sel vol %%B

echo det vol

echo lis par

echo exit

) | diskpart>"%temp%\vol%%B.txt"

for /f "tokens=3 usebackq delims= " %%a in (`"find "* 디스크" "%temp%\vol%%B.txt""`) do set WINDISK=%%a

for /f "tokens=3 usebackq delims= " %%b in (`"find "* 파티션" "%temp%\vol%%B.txt""`) do set WINPAR=%%b

for /f "tokens=1-2 delims=: usebackq" %%a in ("%temp%\vol%%B.txt") do (if "%%a" EQU "볼륨 용량        " set Tcapa=%%b)

SET Tcapa=!Tcapa: =!

SET TwinArc=x86

IF EXIST "%%B:\Windows\SysWOW64" SET TwinArc=x64

REG LOAD HKLM\Tmp_SFT "%%B:\windows\system32\config\SOFTWARE"

FOR /F "TOKENS=1* DELIMS=REG_SZ USEBACKQ SKIP=1 " %%I IN (`Reg query "HKLM\Tmp_SFT\Microsoft\windows NT\CurrentVersion" /v "productname"`) DO (

IF "%%I" EQU "    productname    " (

SET WinName2=%%J

FOR /F "TOKENS=* DELIMS= " %%Z IN ("!WinName2!") DO SET WinName2=%%Z

SET "WinName=!WinName! !WinName2! !TwinArc! (!WINDISK!:!WINPAR! %%B:!Tcapa!)"

)

)

REG UNLOAD HKLM\Tmp_SFT

)

 

 

글자수 제한 해결하기

 

::2번째줄 글자 수 검사, 127글자 넘치게 되면 글자수 줄이기

 

set "TEXT=OS :%WinName% / IP : %IP_Ad% / Bios : %BTYPE%"

ECHO %TEXT%>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x

ECHO %strlength%

IF %strlength% GTR 127 ECHO 범위초과

IF %strlength% LEQ 127 ECHO 출력가능

 

IF %strlength% GTR 127 (

ECHO 1차 단축

SET TEXT=!TEXT:Windows=Win!

SET TEXT=!TEXT:Professional=Pro!

SET TEXT=!TEXT:Enterprise=Ent!

SET TEXT=!TEXT:Education=Edu!

SET TEXT=!TEXT:Pro For Worksations=Pro WS!

SET TEXT=!TEXT:China Government Edition=CGE!

SET TEXT=!TEXT:Home Basic=HB!

SET TEXT=!TEXT:Home Premium=HP!

SET TEXT=!TEXT:Embedded=Emb!

SET TEXT=!TEXT:Systems=Sys!

SET TEXT=!TEXT:Standard=Std!

SET TEXT=!TEXT:POSReady=POSRdy!

SET TEXT=!TEXT:Industry=Indus!

SET TEXT=!TEXT:Single Language=SL!

SET TEXT=!TEXT:Ultimate=Ult!

ECHO !TEXT!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x

ECHO 1차 단축된 문자열 길이 !strlength!

IF !strlength! GTR 127 (

ECHO 2차 단축, 공백제거

SET TEXT=!TEXT:Bios ^: =B^:!

SET TEXT=!TEXT:OS ^: =O^:!

SET TEXT=!TEXT:IP ^: =I^:!

SET TEXT=!TEXT:Legacy=L!

SET TEXT=!TEXT:UEFI=U!

SET TEXT=!TEXT:GB=G!

SET TEXT=!TEXT: (=(!

SET TEXT=!TEXT: / =/!

ECHO !TEXT!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x

ECHO 2차단축된 길이 : !strlength!

)

)

 

IF %strlength% GTR 127 echo 그래도 김

IF %strlength% LEQ 127 ECHO 출력가능

 

echo 결과값 : %TEXT%

 

::3번째줄 글자 수 검사, 넘치면 줄이기

set "TmpTEXT2=CPU : %CNAME% (%PCORE%C%LCORE%T) / RAM : %TM%GB (%ram_count%/%m_bank%) / MB : %MoBo% / GPU : %GNAME%"

ECHO %TmpTEXT2%>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x

 

ECHO %strlength%

IF %strlength% GTR 127 ECHO 범위초과

IF %strlength% LEQ 127 ECHO 출력가능

 

::메인보드 이름만 줄여보고 안되면 공백 등 조절

IF %strlength% GTR 127 (

ECHO 범위초과

SET "TmpTEXT2=CPU : !CNAME! (!PCORE!C!LCORE!T) / RAM : !TM!GB (!ram_count!/!m_bank!) / MB : !MoBos! / GPU : %GNAME%"

ECHO !TmpTEXT2!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x

IF !strlength! GTR 127 (

ECHO 2차 단축, 공백제거

SET TmpTEXT2=!TmpTEXT2:CPU ^: =C^:!

SET TmpTEXT2=!TmpTEXT2:RAM ^: =R^:!

SET TmpTEXT2=!TmpTEXT2:MB ^: =M^:!

SET TmpTEXT2=!TmpTEXT2:GPU ^: =G^:!

SET TmpTEXT2=!TmpTEXT2:GHz=G!

SET TmpTEXT2=!TmpTEXT2:GB=G!

SET TmpTEXT2=!TmpTEXT2: @ =@!

SET TmpTEXT2=!TmpTEXT2: (=(!

SET TmpTEXT2=!TmpTEXT2: / =/!

ECHO !TmpTEXT2!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x

ECHO 2차단축된 길이 : !strlength!

)

)

 

IF %strlength% GTR 127 echo 그래도 김

IF %strlength% LEQ 127 ECHO 출력가능

 

echo 결과값 : %TmpTEXT2%

 

IF "%GNAME%" NEQ "0" (

reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "%TmpTEXT2%" /f

 

)

 

shirnk.jpg

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
3688 윈 도 우| Windows 10, Administrator 관리자 계정 설치 및 OOBE 오류... [2] 회오리BOi 5008 13 06-21
3687 기 타| WOL CMD로 부팅하기 [1] 내꼬 1699 6 06-20
3686 윈 도 우| 윈도우 디펜더 관리(자동업데이트) [1] 내꼬 3895 6 06-17
3685 윈 도 우| 나만의 복원 솔루션 만들기 -2부- (UEFI) [18] gooddew 4590 29 06-16
» 윈 도 우| 추가)PE 우측하단 워터마크에 각종 정보 넣기 [15] 히이이잌 2962 25 06-16
3683 서버 / IT| CentOS 8 데스크탑 환경: Xfce 데스크탑 설치하기 VenusGirl 1388 3 06-14
3682 소프트웨어| UNetbootin (Universal Netboot Installer) 범용 Netboot ... [3] VenusGirl 1136 6 06-11
3681 소프트웨어| YUMI – Multiboot USB Creator (멀티 부트 USB 제작기) [6] VenusGirl 4080 16 06-10
3680 윈 도 우| DISM++ 를 이용해서 윈도우 10 설치하기 [18] gooddew 4112 21 06-07
3679 서버 / IT| CentOS 8 기본 설치 안내서 [3] VenusGirl 1857 6 06-07
3678 윈 도 우| 나만의 복구 솔루션 만들기 -1부- (UEFI) [36] gooddew 8063 31 06-06
3677 윈 도 우| CMD 배치파일을 로컬 시스템 서비스로 등록 [8] Neutrino 2014 9 06-05
3676 소프트웨어| Ventoy 4GB이상의 이미지 혹시나 해서 해보니 재미난 상황... [9] 비비씨씨 3585 7 06-04
3675 하드웨어| [Tip] EU 플러그 -> KS 플러그 변환 [8] asklee 4117 4 06-02
3674 소프트웨어| 이런 식의 포터블 런처는 어떨까요?(프로그램 있슴.) [7] 타락천사둘 2085 15 06-02
3673 윈 도 우| VHD 동적확장-고정간 변환 및 크기 변경 [1] 신세계 1769 5 06-01
3672 소프트웨어| [내용 업데이트] 무료로 내 PC(또는 폰,TV BOX)를 영화 감... [16] windowsand 4003 11 05-31
3671 윈 도 우| VHD 부트에서 부팅된 VHD 파일경로 추출과 활용 스크립트 [2] Neutrino 1073 7 05-31
3670 서버 / IT| 손쉽게 멀티부팅용 USB 만들기. (내용추가) [50] 디폴트 7586 61 05-31
3669 윈 도 우| LG 복원 솔류션 이식하기 (UEFI) [14] gooddew 4803 15 05-30
XE1.11.6 Layout1.4.8