윈 도 우 배치파일 자가삭제 가능하게끔 가능할까요?
2023.12.09 18:02
@echo off
echo 기존의 윈도우 키를 삭제 합니다.
echo.
pause
slmgr.vbs /upk
echo.
echo.
echo 레지스트리에 있는 제품키를 삭제 합니다.
echo.
pause
slmgr.vbs /cpky
goto CDKEY
:CDKEY
set /p choice=홈에디션으로 변경을 하는 것이 맞으세요? 예(Y) / 아니오(N) :
if "%choice%" == "y" goto :YES
if "%choice%" == "n" goto :CDKEY
goto NO
:YES
echo.
echo.
echo 원도우10 제품키 변경 시작
echo.
pause
slmgr.vbs -ipk 제품키
echo.
echo.
echo 원도우10 제품인증 받기
echo.
pause
slmgr.vbs -ato
echo.
echo.
echo 원도우10 제품인증 확인
echo.
pause
slmgr.vbs -dlv
:NO
echo.
echo.
exit
=========================================================================================
고수님에게 여쭤 봅니다.
bat나 cmd 파일로 작성하면 실행 후 자가삭제가 가능하게끔 하려면 어떤 배치명령어를 입력하면 되는지 조언을 구합니다.
댓글 [6]
-
지니제스트 2023.12.09 18:04
-
솔제 2023.12.09 18:38
해보니까 되네요!
신기함..^^
-
메리아 2023.12.09 18:46
요새 제가 배치파일 작성 문제로 좀 골치 썩고 있는데, 주의점을 알려드립니다.
엔간하면
if exist "%0" (
del "%0"
)
이런식으로 하시기 바랍니다.
배치파일에서 문제가 되는 부분이 여럿있지만
중요한 것 중에 하나가 "경로명으로 가능한 문자가 인식안되는 현상"입니다.
대표적인 것이 ! % ^ &
이 4글자입니다.
저 글자들은 폴더명 파일명이 가능하지만 cmd에서 여러 명령어로도 쓰이는 글자인데
제대로된 구분이 잘 안되게 구성이 되어있습니다.
이게 상위경로명이나 폴더명에 있을경우 적절한 처리가 되지 않으면 오류나거나 버그 생깁니다.
즉 "잘못된 삭제"가 발생할 가능성이 있다는거죠.(실행 안되는 정도면 다행이겠죠.)
좀 더 안전하게 하려면
setlocal DisableDelayedExpansion
cd /d %~dp0
if exist "%0" ((오타가 있었네요. 이대로도 되긴하겠지만...)if exist "%~nx0" (
del "%~nx0"
)
SETLOCAL ENABLEDELAYEDEXPANSION
이게 좋습니다.
잘못하면 상위 파일 중에 겹치는게 지워질 수 있으니까요.
! % ^ & 처리도 알려드리자니 좀 복잡합니다.
저도 계속 헷갈리는 중이고요...
일단 저정도만 해도 어지간한건 해결될겁니다.
-
夜來香 2023.12.10 12:40
해봤는데 지워지지지가 않네요. ㅋㅋ 안되는 것은 주인탓이겠죠? ㅋㅋ
-
메리아 2023.12.11 10:39
첫댓글건 된다고 하셨으니
제것이 안된단 얘기 같은데
조금 고치긴했습니다만 고치기 전이나 후나 되는데
경로에 ! % ^ & 등이 있진 않은지요?
복잡해져서 저거 들어간거는 처리 안할려고 했는데,
기존것은 ! % 만 처리한거고, ^ &가 폴더명에 있는 경우는 처리되지 않습니다.
결국 처리한 코드를 보여드리자면
rem 관리자권한 실행시 시작경로 흉내
cd /d C:\Windows\System32
setlocal DisableDelayedExpansion
set "dp0_N=%~dp0"
set "dp0_N=%dp0_N:^=^^%"
set "dp0_N=%dp0_N:&=^&%"
cd /d %dp0_N%
if exist "%~nx0" (
del "%~nx0"
)
SETLOCAL ENABLEDELAYEDEXPANSION
저 특수문자 경로에서도 처리되는 구문입니다.이게 안된다면 어떤 경로인지 궁금할 정도네요. 저도 안되는 경로를 처리하려고 애쓰는 중이라... -
夜來香 2023.12.12 07:26
메리아님 죄송합니다.
메리아님 것이 안된다는 것이 아니고 제가 초보라서 제일 위에 것으로도 메리아님의 배려된 문구도 제 컴퓨터나 손 탓인지 지워지지 않는다는 말입니다.
주인탓은 제탓이라는 건데 이렇게 다시 수정까지 해주시고 감사합니다.
제거 이쪽으로는 컴맹이라 메인에 있는 스크립트도 어디에서 받아서 제 입맛에 맞게 수정해서 작성한 것이라 문제가 있을 수도.............................
만능윈도우를 프로로 만들어서 홈에디션으로 변경시 선택형으로 작업하고 자체삭제되게끔 하려고 한 것입니다.
배려 감사합니다.
고수님 덕택에 이렇게 하나더 지식 습득해 갑니다.
연말 마무리 잘 하시고, 새해에는 복 많이 받으세요~~
del %0