윈도우10 에서 꽤나 특이한 버그를 하나 찾았습니다.
2022.07.25 22:50
괄호 기호 중에 여는 둥근 괄호, opening parenthesis 가 있습니다.
( 이렇게 생긴 것이요.
그리고 기호 중에 공백, space 가 있습니다.
어떤 cmd 파일의 full path 에 여는 둥근 괄호가 포함되어 있으면서 공백은 포함되어 있지 않은 경우,
그 cmd 를 윈도우 탐색기에서 우클릭 - 관리자 권한으로 실행을 선택할 경우
cmd 자체가 실행되지 않고 닫히는 경우가 있다는 버그입니다.
예를들어서 c:\ 에 a( 라는 이름의 폴더를 만들고 그 폴더에 abc.cmd 를 만들고 내용물이
pause
이렇게 1줄인 cmd를 생성해봅니다.
즉 c:\a(\abc.cmd 가 full path 가 됩니다.
그리고 그 abc.cmd 를 우클릭-관리자권한으로 실행 할 경우에 cmd 자체가 실행되지 않고 닫히게 됩니다.
창이 깜빡거리는 것으로 보입니다.
폴더명을 a) 로 수정하고 시도하면 이번에는 잘 실행됩니다. (pause 가 제대로 작동)
몇 번 시도를 해보았는데 이 현상은 닫는 둥근 괄호 ) 와는 무관한 것으로 보입니다.
그리고 여는 둥근 괄호가 포함되어 있는 경우라도, 공백도 같이 포함되어 있으면
우클릭 관리자 권한으로 실행할 경우 잘 실행되는 것 같습니다.
폴더명을 a ( 로 하면 괄호앞에 공백이 있으니까 실행이 잘 됩니다.
이 버그에 대해 리포트가 된 적이 있는지 모르겠네요.
vmware 에서 최신 버전의 윈도우를 설치하고 해봐도 이 버그가 그대로 있습니다.
cmd 를 우클릭-관리자 권한으로 실행이 잘 안되어도, cmd 에 전혀 문제가 없을 수도 있다 그리고
cmd 가 위치한 full path 명의 여는 둥근 괄호를 제거해본다든지 하는 것을 시도하는 것이 도움이 될 수 있을 것 같습니다.
cmd 파일명에 의도적으로 공백을 하나 둔다면 이 버그는 막을 수 있을 것 같습니다. 어느 폴더에 두건 full path 에 공백이 포함이 되게 되어서요
댓글 [7]
-
번개 2022.07.25 23:01
-
솔트 2022.07.25 23:18
신기하네요. 테스트해보니 정말 그렇네요 윈 11입니다.
그런데 말입니다 폴더를 a( 도 그렇지만 a; 도 안되네요. (관리자권한으로 실행)
a^ 도 안되고요
-
DarknessAngel 2022.07.26 08:37
경로를 '라던가 다른 방법으로 묶어도 똑같나요?
이래도 안 되면 손되기 곤란함 (변수에 대입해도 아마 똑같음)
-
rainy 2022.07.26 09:22
-
메리아 2022.07.26 14:32
어떤일이 벌어진건지는 대충 알것도 같습니다
XP, 윈7 다 해봤는데
XP는 아예 관리자상태라 관리자 실행이 따로 없어서 a^에서만 문제가 확인됐고
윈7은 다 확인되는군요.
즉, 윈10의 문제가 아니라 애초에 cmd와 배치파일의 문법의 영향입니다.
버그라고 하기도 아니라고 하기도 애매한 문제죠.
솔직히 이건 거의 답 없습니다. 그냥 알아서 피하는수 밖에요.
참고로 엑셀 등 오피스 파일들 또한 "대괄호"로 묶인 경로를 자제해야합니다.
예를들어
C:\[abc]
이런 폴더에 신규저장하려고 하면 에러가 납니다. 파일명에도 상위경로명에도 대괄호를 쓰면 안됩니다.
(이미 생성된 파일을 복사하고 여닫고 저장하는건 또 괜찮습니다.)
이게 문제가 되는 이유는 대괄호가 엑셀 등에서는 파일 참조문법으로 쓰이기 때문입니다.
이거 해법은 그냥 문제 상황이 있으면 쓰는 작업경로 자체에서 대괄호를 싹 빼버려야합니다.
(즉 파일 자체를 아예 옮기란 뜻입니다)
참고로 원칙적으로 폴더명 금지인 단어들도 있습니다
Windows에서 원칙적으로 작성 금지된 폴더 또는 파일 이름을 강제로 만들기 - Con Aux Prn Nul Com0 ~ Com9 Lpt0 ~ Lpt9
https://www.tabmode.com/windows10/cmd-prn-con-aux.html
con이나 aux 같은거 그냥 써도 될거 같은데
이대로 폴더 만들면 어디서라도 문제 생길 수 있습니다
-
ton3d 2022.07.26 21:42
이미 설명되어 있지만
cmd 파일의 내용(코드)와 무관하고
cmd 파일의 위치(full path)와 관련이 있습니다.
그것도 탐색기에서 우클릭 후 관리자 권한으로 실행하는 경우에만 문제가 생깁니다.
부연설명 감사합니다~
-
메리아 2022.07.28 00:38
일단 제시된 문제 해결하는 샘플은 만들었습니다만
일부 또 제대로 안될수도 있어서 애매하네요.
특히 느낌표 ! 가 들어간건 어떻게 해도 잘 안되네요.
그래서 강좌 팁에 올리긴 그렇고, 여기나 올려봅니다.
더블클릭만 하면 관리자권한 획득을 요구하면서 실행하려고 들죠.
우클릭 관리자권한은 저런 처리가 없을테니, 폴더명 이상하면 해결이 안됩니다. ㅡ.ㅡ
결국 그냥 더블클릭해서 폴더경로 파일명 같은거 잘 수정해서 실행시켜야죠 뭐.
답 안나오는건 실제 경로를 바꾸고...
기존에 없던 버그를 만드는 기술에 놀랐음