DOS 일괄 처리 고급 튜 토리 얼 제3 장 FOR 명령 의 변수

5166 단어 FOR 명령변량
FOR 명령 중 일부 변수 가 있 습 니 다.그들의 용법 은 많은 초보 친구 들 이 아직 잘 모 릅 니 다.오늘 은 그들의 용법 을 설명해 드 리 겠 습 니 다!
먼저 FOR 의 변 수 를 모두 열거 합 니 다:
     ~I          - 모든 따옴표 삭제("),확장%I
     %~fI        - %I 를 완전히 합 격 된 경로 이름 으로 확장
     %~dI        - %I 만 드라이브 번호 로 확장
     %~pI        - %I 만 한 경로 로 확장
     %~nI        - %I 만 파일 이름 으로 확장
     %~xI        - %I 만 파일 확장자 로 확장
     %~sI        - 확장 경 로 는 짧 은 이름 만 포함 되 어 있 습 니 다.
     %~aI        - %I 파일 속성 으로 확장
     %~tI        - %I 파일 의 날짜/시간 으로 확장
     %~zI        - %I 파일 크기 로 확장
     %~$PATH:I   - 경로 환경 변수 에 열 거 된 디 렉 터 리 를 찾 고%I 를 찾 은 첫 번 째 완전히 합 격 된 이름 으로 확장 합 니 다.환경 변수 이름 이 정의 되 지 않 거나 파일 을 찾 지 못 하면 이 조합 키 는 빈 문자열 로 확 장 됩 니 다.
우 리 는 줄 마다 대문자'I'가 있 는 것 을 볼 수 있다.이 I 는 사실은 우리 가 FOR 에서 가 져 온 변수 이다.우리 FOR 문 구 를 대 입 한 변수 이름 이 무엇 인지 여기에 뭐라고 쓰 여 있다.
FOR/F  %%z IN ('set') DO @echo %%z
여기 서 우리 가 대 입 한 변수 이름 은 z 입 니 다.그러면 우 리 는 그 I 를 z 로 바 꿔 야 합 니 다.예 를 들 어%~fI 를%~fz 로 바 꿔 야 합 니 다.
앞의%~p 에 대해 서 는 문법 입 니 다!
자,설명 시작:
하나~I          - 모든 따옴표 삭제("),확장%I
이 변수의 역할 은 그의 설명 과 같이 따옴표 를 삭제 합 니 다!
우 리 는 이 예 를 보 자.
우선 임시 파일 temp.txt 를 만 듭 니 다.내용 은 다음 과 같 습 니 다.
"1111
"2222"
3333"
"4444"44
"55"55"55
BAT 파일 코드 를 만 들 수 있 습 니 다.

@echo off
echo ^"1111>temp.txt
echo "2222">>temp.txt
echo 3333^">>temp.txt
echo "4444"44>>temp.txt
echo ^"55"55"55>>temp.txt

rem         ,              ^,           

FOR /F "delims=" %%i IN (temp.txt) DO echo %%~i
pause
del temp.txt
실행 후 CMD 의 회 현 은 다음 과 같 습 니 다.
          #문자열 앞 따옴표 가 삭제 되 었 습 니 다.
          #문자열 의 앞 뒤 따옴표 가 모두 삭제 되 었 다.
3333"          #문자열 앞 에 따옴표 가 없고 뒤의 따옴표 가 남아 있 습 니 다.
4444"44        #문자열 앞의 따옴표 가 삭제 되 었 고 중간 따옴표 는 유지 되 었 습 니 다.
55"55"55       #문자열 앞의 따옴표 가 삭제 되 었 고 중간 따옴표 는 유지 되 었 습 니 다.
임의의 버튼 을 눌 러 계속 하 세 요..
이전 temp.txt 의 내용 과 비교 해 보면 1,2,5 줄 의 따옴표 가 모두 사 라 졌 습 니 다.이것 이 바로 따옴표~i 를 삭제 하 는 역할 입 니 다!
따옴표 삭제 규칙 은 다음 과 같 습 니 다(BAT 형 보충!)
1.문자열 의 맨 끝 에 따옴표 가 동시에 존재 하면 맨 끝 에 있 는 따옴표 를 삭제 합 니 다.
2.문자열 끝 에 따옴표 가 존재 하지 않 으 면 문자열 의 첫 번 째 따옴표 를 삭제 합 니 다.
3.문자열 중간 에 따옴표 가 존재 하거나 끝 에 만 따옴표 가 존재 하면 삭제 하지 않 습 니 다.
2.%~fI        - %I 를 완전히 합 격 된 경로 이름 으로 확장
보기:
코드 를 아무 데 나 보관 하 세 요.제 가 여기 데스크 톱 에 놓 을 게 요.

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~fi
pause
실행 후 다음 내용 이 표 시 됩 니 다:
test.bat
test.vbs
비 교 를 통 해 우 리 는 경로 가 없다 는 것 을 쉽게 알 수 있 습 니 다.이것 이 바로'%I 를 완전히 합 격 된 경로 이름 으로 확장 하 는 것'의 역할 입 니 다.즉,%i 변수의 내용 이 파일 이름 이 라면 그 는 이 파일 이 있 는 절대적 인 경 로 를 인쇄 할 것 입 니 다.파일 이름 만 인쇄 하 는 것 이 아니 라 스스로 실험 을 하면 알 수 있 습 니 다!
3.%~dI        - %I 만 드라이브 번호 로 확장
보기:
코드 는 다음 과 같 습 니 다.데스크 톱 에 놓 고 실행 하 겠 습 니 다!

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~di
pause
실행 후 CMD 에 다음 과 같이 표 시 됩 니 다.
C:
C:
내 데스크 톱 에는 두 개의 파일 이 있 습 니 다.test.bat,test.vbs,%%~di 역할 은 변수%i 의 내용 이 파일 이나 디 렉 터 리 이름 이면 이 파일 을
또는 디 렉 터 리 가 있 는 디스크 기 호 를 인쇄 합 니 다!
4.%~pI        - %I 만 한 경로 로 확장
이 용법 은 위 와 마찬가지 로 그 는 파일 이름 을 인쇄 하지 않 고 경로 만 인쇄 한다.

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~pi
pause
저 는 결 과 를 하지 않 겠 습 니 다.여러분 스스로 결 과 를 보 세 요.아래 몇 개 는 모두 이런 용법 입 니 다.코드 가 나 오 면 여러분 스스로 결 과 를 보 세 요!
5.%~nI        - %I 만 파일 이름 으로 확장
파일 이름 만 인쇄

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ni
pause
6.%~xI        - %I 만 파일 확장자 로 확장
파일 만 인쇄 할 확장자

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~xi
pause
7,%~sI        - 확장 경 로 는 짧 은 이름 만 포함 되 어 있 습 니 다.
절대 짧 은 파일 이름 인쇄

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~si
pause
8,%~aI        - %I 파일 속성 으로 확장
파일 속성 인쇄

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ai
pause
9.%~tI        - %I 파일 의 날짜/시간 으로 확장
파일 생 성 날짜 인쇄

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ti
pause
10%~zI        - %I 파일 크기 로 확장
인쇄 파일 의 크기

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~zi
pause
위의 예 에서"delims=="은"delims="로 바 꿀 수 있 습 니 다.즉,구분자 가 필요 하지 않 습 니 다.
11.%~$PATH:I-경로 환경 변수 에 열 거 된 디 렉 터 리 를 찾 고%I 를 찾 은 첫 번 째 완전히 합 격 된 이름 으로 확장 합 니 다.환경 변수 이름 이 정의 되 지 않 거나 파일 을 찾 지 못 하면 이 조합 키 는 빈 문자열 로 확 장 됩 니 다.
이것 이 마지막 입 니 다.위 에 있 는 것 과 다 릅 니 다.제 가 따로 말씀 드 리 겠 습 니 다!
그리고 이 코드 들 을 일괄 처리 로 저장 하여 데스크 톱 에 놓 습 니 다.

@echo off
FOR /F "delims=" %%i IN (“notepad.exe”) DO echo %%~$PATH:i
pause
토 네 이도 추가:위의 코드 는 C:\WINDOWS\시스템 32otepad.exe 로 표 시 됩 니 다.
PATH 변수 에서 지정 한 경로 에서 notepad.exe 파일 을 검색 하 라 는 뜻 입 니 다.notepad.exe 가 있 으 면 절대 경 로 를 출력 하고 없 으 면 오 류 를 출력 하 라 는 뜻 입 니 다!
자,FOR 의 변 수 는 여기까지 소개 합 니 다!

좋은 웹페이지 즐겨찾기