윈 도 우 배치파일속의 변수가 변하질 않습니다
2021.01.19 00:07
안녕하세요~~
다름이 아니라 문서내의 파일들을 매뉴로 나타나게 하기 위해서
앞에 숫자를 붙이고 문서내의 파일이름을 옆에 나열하여
선택하게끔 하는 내용을 제작 하려고 하는데요
1. 11.log
2. 12.log
3. 13.log
이런식으로 나열후 선택하게끔 하려고 하고 있습니다.
그러나 앞에 1,2,3 카운터가 동작을 안하는데 왜 안하는것인지 좀 살펴봐주십시요
내용은 아래와 같습니다
set ct=1
for /f "tokens=1" %%a in (file.dat) do (
echo %ct%번 %%a
set /a ct=+1
)
이렇게 실행하면 아래처럼 1개 숫자만 문서안에 파일 갯수만큼 주루룩 뜹니다;; 왜 증가가 안되는건지 궁금합니다. 감사합니다.
1번 11.log
1번 12.log
1번 13.log
댓글 [10]
-
BecauseI 2021.01.19 00:42 -
모노시티 2021.01.19 08:18
도움 감사드립니다. 집에가면 해보겠습니다. -
bangul 2021.01.19 01:00
@echo off
chcp 65001 >nul
cd /d %~dp0
findstr /n /v ` file.dat
echo.
echo.
pause
exit
1:11.log
2:12.log
3:13.log
Press any key to continue . . .
findstr /n /v ` file.dat => ` file.dat 파일에 없는 문자를 사용 합니다.
-
모노시티 2021.01.19 08:18
와우~!! 감사드립니다. 집에서 시험해보겠습니다 -
모노시티 2021.01.19 15:54
천재시네요~ 희얀하네;;;; 요런맛에 프로그래밍 하는것 같아요 신기방기
-
suk 2021.01.19 04:04
숫자 1을 계속 더하기 하시려면, set /a ct=+1 가 아니고 set /a ct+=1 입니다.
그리고 for 구문 안에서 ct 변수를 재지정하시려면
배치 파일 윗부분에 setlocal enabledelayedexpansion 추가하시고, %ct%는 !ct!로 하셔야 됩니다
그리고 파일 이름에 띄어쓰기가 있는 경우를 감안하여 "tokens=1"를 "tokens=*"로 변경하시면 됩니다
-
모노시티 2021.01.19 08:19
헉! 문법이 틀렸던건가요?
친절한 설명 감사드립니다. ^^ -
컨피그 2021.01.19 04:40
set "ct=1"
for /f %%a in (file.dat) do (
call :_ct %%a
)
pause
exit
:_ct
echo %ct%번 %1
set /a "ct+=1"
exit /b
-
모노시티 2021.01.19 08:20
오 call문을 이렇게!!!!
활용하는 예문 참 고맙습니다. 감사드립니다^^ -
메리아 2021.01.19 20:21
위에 많이들 말씀하셨지만
for문 등 ( ) 안에 들어가는 변수들은
%변수% 가 아닌
!변수! 라고 써야 먹힙니다.
이게 옵션 따라 다르긴 한데
일단 for문 돌리면 무조건 !변수! 쓴다고 생각하시면 됩니다.
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
44025 | 윈 도 우| 시스프렙처럼 드라이버 전부 제거해주는 프로그램 있을까요? [5] | 김곰돌 | 388 | 02-03 |
44024 | 윈 도 우| 서버PC 윈도우 이미지관련 [4] | 매일이새롭 | 266 | 02-03 |
44023 | 윈 도 우| 이 앱은 사용자 보호를 위해 차단되었습니다..메세지 문의 [2] | 뷰티블마인 | 313 | 02-03 |
44022 | 윈 도 우| 카카오톡 화면에서 글자가 너무 작게 나옵니다 [8] | joe | 389 | 02-03 |
44021 | 윈 도 우| EasyBCD 사용 문의 _ 도와주세요 [3] | GTO12kr | 316 | 02-02 |
44020 | 윈 도 우| PowerDVD H265 영상이 안나오는 현상 [2] | 우주인 | 333 | 02-02 |
44019 | 윈 도 우| 플래쉬 플레이어 안나옵니다 [3] | giwldlst | 409 | 02-02 |
44018 | 윈 도 우| asus 2017년 메인보드인데요. 바이오스 모드에서, ahci 모... [3] | 기억의저편 | 465 | 02-02 |
44017 | 윈 도 우| 복사프로그램 [1] | FirstK | 715 | 02-01 |
44016 | 윈 도 우| esd -> iso 변환 문제 도와주세요.. [9] | feel | 730 | 02-01 |
44015 | 윈 도 우| 버츄얼박스에 vhd 세팅후 실컴으로 옮길때 질문입니다. [6] | 부앜어카앜 | 205 | 02-01 |
44014 | 윈 도 우| 노트북 와이파이.. [2] | 테츠로 | 420 | 02-01 |
44013 | 윈 도 우| 노트북 로그인 비번 분실 [3] | 홍지윤 | 567 | 02-01 |
44012 | 윈 도 우| bios(legacy) 부팅만 되는 wim파일 uefi 부팅도 되도록 수... [7] | 오스 | 585 | 02-01 |
44011 | 윈 도 우| 엣지 브라우저가.. [4] | 홍지윤 | 368 | 01-31 |
44010 | 윈 도 우| gpt 시스템 부팅복구 질문 [3] | 수사반장 | 317 | 01-31 |
44009 | 윈 도 우| 시스템 보호 관리자가 구성을 사용하지 않도록....? [3] | 카비 | 219 | 01-31 |
44008 | 윈 도 우| 윈도우 화면이 4개로 나옵니다. [6] | 청송 | 794 | 01-31 |
44007 | 윈 도 우| Windows 10 1511 언어팩 [3] | 레덕후 | 327 | 01-31 |
44006 | 윈 도 우| UEFI 부팅 [4] | FirstK | 698 | 01-30 |
@echo off
setlocal enableDelayedExpansion
set ct=1
for /f "tokens=1" %%a in (file.dat) do (
echo !ct!번 %%a
set /a ct+=1
)