윈 도 우 배치파일 변수 관련 질문
2018.12.04 19:11
set var1=1
if %var1% == 1 (
set var1=2
echo %var1%
)
echo %var1%
위에처럼 돌려보면 if문 안에 있는 값은 1 나오고
마지막줄에서 2 나오네요
if문 안에서도 2 나와야 되는거 아닌가요?
댓글 [4]
-
anymore... 2018.12.04 19:35
-
suk 2018.12.04 20:23
괄호 속의 set 이 [괄호 속에서도] 반영되려면
setlocal enabledelayedexpansion 를 먼저 지정하시고, 변수의 %는 !로 변경하셔야 됩니다
비교 차원에서 적용하기 전 배치파일도 실행해봤습니다
괄호 속에 1인 경우 2로 재지정을 했는데, 반영이 안 됩니다. 괄호를 벗어나면 2가 반영이 됩니다.
--------------------------------------
사실 배치파일 사용하다 보면 자주 사용하는 것입니다
보통 1,2,3...이렇게 리스트 만들 때 사용됩니다. 그리고 사용자가 번호를 선택하는 것입니다.
- 배치파일 테스트 - 괄호 속의 set 이 반영되려면 setlocal enabledelayedexpansion 를 먼저 지정하고, 변수의 퍼센트는 느낌표로 변경해야 반영됩니다 2018-12-04_202023.jpg (22.6KB)(0)
- 배치파일 테스트3.bat (126Bytes)(14)
- 배치파일 테스트 - 괄호 속의 set 이 반영되려면 setlocal enabledelayedexpansion 를 먼저 지정하고, 변수의 퍼센트는 느낌표로 변경해야 반영됩니다 - 적용하기전 상황 2018-12-04_202927.jpg (15.7KB)(0)
- 배치파일 테스트3-1.bat (91Bytes)(9)
-
컨피그 2018.12.04 21:19
말씀하신
setlocal enabledelayedexpansion
검색해보니 제가 겪은 문제와 같은 상황에 대해 설명해놓은 글이 나오네요
http://m.egloos.zum.com/playgame/v/2230804
이해가 안돼서 답답했는데 감사합니다~^^ -
메리아 2018.12.05 11:22
저런거 참 골치 아프죠.
어지간하면 vbscript 가시는게 좋습니다.
저런 혼동이 적고, 가능한게 더 많죠.
배치파일 되는 환경이면 vbscript도 다 됩니다.
(파워쉘도 좋다고 하던데 파워셸은 안배워서리...)
참고로 배치파일에서는 노답이라
temp경로에 vbs를 만들어 호출하는 코드도 있을정도죠.
(관리자권한 같은거. 사실 관리자권한 획득 목표라면 뭐, vbs에서도 같은 식으로 해야하지만요.)
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
13105 | 윈 도 우| 윈도우 변경한 설정 레지스트리 값 확인, 추출 방법? [5] | 마집사 | 376 | 03-25 |
13104 | 기 타| 다음 카카오계정 [2] | 홍낄똥 | 376 | 04-12 |
13103 | 윈 도 우| 꼬져님 봐주세요. 윈도우10 작업표시줄에 대한 문의? [6] | 맹물 | 376 | 01-25 |
13102 | 소프트웨어| adguard 구매해서 사용하신분 있으신가요? [7] | 한스 | 376 | 11-25 |
13101 | 윈 도 우| 윈도우7 pe 만들기. [6] | 파시피카 | 376 | 06-02 |
13100 | 소프트웨어| 오피스 파일 질문인데요 [2] | 조이풀아임 | 376 | 11-29 |
13099 | 윈 도 우| d드라이브를 계속 읽는데 원이이뭘까요? [6] | 비상 | 376 | 03-21 |
13098 | 하드웨어| 오래된 컴퓨터 하드쪽 업그레이드 하고 싶은데.. 어떻게 해... [8] | 카니 | 376 | 03-17 |
13097 | 윈 도 우| 모니터가 자꾸 절전모드로 되돌아 갑니다. [2] | 카이행복26 | 376 | 03-13 |
13096 | 소프트웨어| TeraByte Image for Windows 복원 방법이 어떻게 되나요? [1] | Chris21 | 376 | 02-20 |
13095 | 기 타| 다음(daum) 안열리네요 [3] | 홍낄똥 | 376 | 02-18 |
13094 | 소프트웨어| 유튜브 세로 영상이 720p 밖에 안 되나요? [2] | ksire | 376 | 02-09 |
13093 | 서버 / IT| 유튜브 첫페이지는 국가마다 동일한가요? [3] | ton3d | 376 | 02-24 |
13092 | 기 타| 알리익스프레스 검색 시 최저가 정렬이 안됩니다. [3] | 『ⓖⓤⓝ』 | 376 | 10-02 |
13091 | 하드웨어| 노트북 메모리 호환 문의 [2] | 아미띠에03 | 376 | 08-24 |
13090 | 윈 도 우| exfat 에서는 vhd 부팅이 안된다? [7] | 티어s | 376 | 10-26 |
13089 | 윈 도 우| 윈도우설치파일 [2] | 민들레 | 376 | 09-21 |
13088 | 윈 도 우| 며칠 전 부터 한글을 입력하면 이상합니다.. [4] | 베지터 | 376 | 09-06 |
13087 | 하드웨어| 프린터와 공인IP [3] | 직구중독 | 376 | 02-02 |
13086 | 하드웨어| b560m [11] | 세븐좋아 | 376 | 06-28 |
당연히 if문은 1로 나오고
결과값은 2가 나와야 정상입니다.
if문에서 var1 값은 이미 if문 전에 1로 정의가 되어 있고, 결과값에서 새로 2로 지정이 되었으므로
1
2
로 표기되야 정상이죠.