현재 위치 - 편방대전넷 - 어떻게 다이어트 할까 - 모두 긴 일괄 처리를 부탁합니다

모두 긴 일괄 처리를 부탁합니다

나는 가장 존경받는 일괄 처리 10을 독일인이 작성한 영어 주석 (기능 : 파일 대체의 일괄 처리 시스템)으로 일괄 처리 10을 재생합니다.

* Replacer 2.63 사전 릴리스

* www3.telus.net/_/replacer/

*电子邮件:undefined@telus.net

@에코 종료

Title Replacer

*운영체제 확인

ver | find "NT" >nul & amp& amp (

echo/! Windows NT는 지원되지 않습니다.

pause & gt null

이동 :eof

)

설정 로컬 비활성화 지연 확장 활성화 확장

*기존 구성 요소 사용

"%. ~dp0Components\*. exe "(

set " 경로 = % ~ dp0Components%path%"

Title Replacer*

)else(

set " 경로 = % windir % \ system32%path%"

)

)

)

*임시 디렉터리

set "dir = %~dp0. 프로그램 대체"

*읽기 전용 미디어에 %tmp% 사용

"% dir %"MD"% dir %가 없는 경우 "2 & gt; nul ||(

set "dir=%tmp%\. Replacer"

md "%tmp%\"ReplacerTemp " 2 & gt null

)

*다른 스크립트와 통신하는 데 사용되는 플래그

Set flg="%dir%\... \.Flag_SafeToDel"

set fl2="%dir%\.Flag2_SafeToDel"

*추출된 파일

set VBS = " % dir % \ Clear _ WFP _ message . VBS"

*재작성된 스크립트 저장

set "scr=% dir %. 현재 스크립트"

*시스템 부팅에 실패할 경우를 대비하여 실행 취소 명령 저장

set und = " % windir % \ replace rundo . txt"

*삭제된 파일 저장

set del = " % dir % \ 삭제된 파일 _ SafeToDel"

Call:브레이크 청소

하단에 추가 VBScript 내장

findstr/rc:"^[]" " % ~ dpnx 0. " & gt; % vbs % 2 & gtnul ||(

echo/! 임베디드 파일을 추출할 수 없습니다. 다음에서 제공되는 컴포넌트 패키지를 사용해 보세요:

echo/ %sys%

)

)

(%sys%)에 %%*에 대한 pth(

for %%*가 정의되어 있으면 do(

set sys = " % PTH % % ~ NX *"

)

)

)

call:chk %sys% ||(

echo/계속하려면 아무 키나 누르세요.

일시 중지 & gt null

Go to:system

)

*스크립트가 시스템 파일로 제공되었는지 확인

For %%* in (%sys%), do(

if /i "%%~x*"== ". txt" (

Find/I";; ReplacerScript " % % * & gtnul & amp& amp (

call:scr %%%*

)

)

call:ver %sys% || goto:sys

:mod하여 대체 파일을 가져옵니다

cls

"mod="

대체 파일인 %nam%를 이 창으로 끌어다 놓습니다.

%bak% 가 있는 경우(

echo/ 또는, RESTORE를 입력하여 %nam% 백업을 복원합니다.

)

그런 다음 Enter 키를 눌러 계속합니다.

echo/ 또는 Q를 입력하여 종료합니다.

call:get mod || goto:mod

call:quo mod

if /i %mod%=="Q" call:brk Now

if /i %mod%=="RESTORE"(call:rst || goto:mod)

call. chk %모드% ||(

echo/계속하려면 아무 키나 누르세요.

일시정지 & gt 비우기

가 :모드로 이동

)

if /i %mod%==%sys%(

echo/! 파일은 스스로 바꿀 수 없습니다.

echo/

echo/ 계속하려면 아무 키나 누르세요.

pause& gt empty

)& amp& amp go to :mode

:cnf 확인 작업

cls

if %mod%==%bak%(

다시 echo/file을 재개합니다.

)else(

%bak%(

이 에코/파일을 백업하지 않으면, 백업이 이미 존재합니다.

)else(

(%sys%)의 %%*에 대해, do(

echo/File은 다음 위치에 백업합니다:

echo/"%%~dpn*. 백업"

)

)

)

echo/

echo/현재 파일:

echo/%sys%

echo/로 대체됩니다:

echo/%mod%

echo/

echo/

echo/continue? ^(Y/N^)

call :get cnf || goto:cnf

call :quo cnf

I가 " %cnf:~1, 1%" == "Y"가 아닌 경우 call :brk Now

cls

:vbs to start VBScript

* A 플래그는 VBScript가 종료할 때를 알려주므로 Replacer.cmd가 종료된 후에도 WFP 메시지는

*지워집니다

현재 %flg% del %flg%

"%atr%"=="non "(

start ""/정상 이하인 경우 wscript//b % VBS % % flg % | |(

echo/VBScript failed:

echo/%vbs%

echo/

)

)

"%scr%"가 있는 경우 "exit /b

:rep replace file

%und% del/f %und%가있는 경우

"%scr%"가 없는 경우 (

echo/ * %nam%:

)

)

)< /p>

* 대체 파일로 시스템 파일을 덮어씁니다

if /i not %mod%==%bak%(

%bak%가 존재하지 않으면 (

echo/ -backup...

call:cpy %sys% %bak%

)

)

*모든 파일이 보호되지 않음

"%atr%"=="non"(

If %dll% exists(

echo/ -Copy to DllCache...

call:cpy %mod% %dll%

)

If %spf% exists(

echo/ -copy to ServicePackFiles...

call:cpy %mod% %spf%

)

%c86% 존재하면 (

echo/ - i386 폴더로 압축...

call:cpy %mod% %fil%

call:cab %fil% %c86%

)

%w86% 존재하면 (

echo/ - Windows i386 폴더로 압축...

call:cpy %모드% %필%

call:cab %필% %w86%

)

%d86%가 있으면 (

echo/ - 드라이버 캐시에 복사...

call:cpy %mod% %d86%

)

)

if /i %mod%==%bak%(

echo/ -복원 시스템 파일...

)else(

echo/ -시스템 파일 바꾸기...

)

* 단순히 파일 이름을 바꾸는 것만으로 WFP를 우회합니다;

::"%~1"

" %pth%\%~nx1"이 존재하지 않으면 (

echo/! 시스템 파일을 찾을 수 없음:

echo/ "%~1"

echo/

export/b1

)

if /i not "%mod%"=="복원"(

If "%mod%"(

If "%mod%. "(

echo/! 대체 파일을 찾을 수 없음:

echo/ "%mod%"

echo/

export/b1

)

)

"% num %" = = " "(

find/I ":\ % \. ~ n 1% num % " " % ~ F0 " & gt; nul 2 & gt& amp1 || (

echo/! 잘못된 참조 번호:

echo/ "%~nx1, %num%"

echo/

exit/b1

)

)

exit/b0

:옵 처리 스크립트의 옵션 줄(sys)

if /i "%opt%"== "옵션 옵션"(

Echo:? 옵션 파일 "%~1"? ^(Y/N^)

setlocal enabledelayedexpansion

call:getvar

if/i "!var!" == "Y" (

endlocal

call. fmt " %시스템%, %수정된%, %수량%, %최적화된%"

Exit/b

)else(

로컬 종료

)

)else(

Call:fmt " %시스템%, %수정된%, %수량%, %최적화된%"

Exit/b1

)

Exit/b0

:fmt 형식의 스크립트

*토큰이 누락된 경우 입력

set "var=%~1"

set "var=%var:, =, %"

set "var=%var:, =, %"

set "var=%var:, =, %"

& gt& gt" %scr%-tmp "echo /%var%

exit /b0

:시퀀스 실행 시퀀스 (정렬된 토큰 4개)

*스크립트에서 파일을 바꿀 때 사용

set "pth="

if not "% ~ 3" = = " "(

콜:\\%~n1%~3

)else(

콜:scn %1

)

Set " sys=%pth%%~nx1"

if /i "%~2" == "복원"(

set "mod=%pth%%~n1.backup"

)else(

set "mod=%~f2"

)

)

CALL:QUO SYS

CALL:QUO MOD

CALL:CHK %SYS% || EXIT/B

CALL:CHK %MOD% || EXIT/B

CALL:VERSION %SYS% || EXIT/B

CALL:ON behalf OF

:scn 폴더를 검사

*파일 이름만 주어졌을 때 가장 일치 가능성이 높은 것을 찾습니다

::(스크립트 또는 시스템 파일 입력 중)

"pth=%~1"

이 아니면 " %pth:\=%"=. = "%pth%"(

Set "pth=%~dp1"

)else(

Set "pth="

Caller:\ \ \ % ~ n 10 2 & gt; nul & amp& amp exit/b0

*더 높은 수준의 더 일반적인 경로

For %%* in(

" %windir% "

" %windir%\system32 "

" %windir%\system32\drivers "

" %. windir%\system "

" %programfiles%\Outlook Express "

" %프로그램 파일 % \ Windows Media Player "

" %windir%\Resources\Themes\ Luna "

" %programfiles%\Movie Maker "

" %programfiles%\Windows NT "

" % windir % \ PCHEALTH \ 도움말 CTR \ 바이너리 "

" % windir%\Fonts "

" % 프로그램 파일 % \ Internet Explorer "

" % 프로그램 파일 % \ Internet Explorer \ 연결 마법사 "

" % 일반 프로그램 파일 % \ \ Microsoft 공유 \ MSInfo "

" % 프로그램 파일 % \ Windows NT \ 액세서리 "

" % 프로그램 파일 % \ Windows NT \ 핀볼 "

" % commonprogramfiles%\System "

" %windir%\system32\Restore "

" % windir % \ system32 \ srchasst "

" %windir%\system32\usmt "

>

" % 일반 프로그램 파일 % \ Microsoft 공유 \ 음성 "

" %프로그램프로필%\넷미팅 "

" % 일반 프로그램 파일 % \ 시스템 \ 맵피 \ 1033 "<

" % 일반 프로그램 파일 % \ Adobe \ Calibration "

" % 프로그램 파일 % \ Symantec \ 라이브 업데이트 "

" % 프로그램 파일 % \ 야생 탄젠트 \ Apps \. CDA "

" % 프로그램 파일 % \ 스타 도크 \ 개체 데스크톱 \ 아이콘 패키저 "

)do(

If not %fl2%(

If present" %%~*\%~nx1 "(

설정 " pth=...=...=...=...)

)

"

"

Set " pth=...=...=...= %%~*\"

nul type & gt%fl2%

)

)

)

If present %%fl2% del %fl2%

)

Exit/b0

:brk 종료 교체 절차 ([clear][immediate])

* 지우고 종료

"%~1" == "퍼지" (

"%~1" == "지금" (

echo

echo/종료하려면 아무 키나 누르세요.

pause & gt null

)

)

if /i not "%~1"=="Purge" if present " %scr%" popd

For %% in (%vbs% %fil% %flg% %%*

% fl2 % " % SCR % " % del" % " %. SCR %-tmp " % DLP %

)do if exist % % * del/f % % * & gt; nul 2 & gt& amp1

if /i not "%~1" == "퍼지" (

If exist "% dir %" rd "% dir %"2 & gt; null

로컬 종료

*다른 루프가 계속되지 않도록 하드 종료 사용

Exit

Exit/b0

*더 많거나 적은 단계가 필요한 특수 파일 목록< /p>

:\ \ Luna

Set "fln=luna.mst"

Set "atr=wfp"

Exit/b0

:\\\\ 셸 스타일

if/나는 " % PTH:홈스테드 = % " = " % PTH % "(

set "fln=home_ss.dll"

)

if/나는 " % PTH. 메탈릭 = % " = " % PTH % "(

Set "fln=metal_ss.dll"

)

if/I not " % PTH:일반 색상 = % " = " % PTH % "(

) Set "fln=blue_ss.dll"

)

if/I not " % PTH:\ system32 \ = = % " = = " % PTH % "(

Set " fln=class_ss.dll"

)< /p>

Set "atr=wfp"

Exit/b0

:\\\ Marlett

Set "atr=non"

Exit/b

:\\\Comctl32

if/I not " % PTH % " = " % windir % \ system32 \ "(

set "atr=non"

)

exit/b

:\\\\ Commdlg

if/I not " % PTH % " = " % windir % \ system \ "(

Set "atr=non"

)

Exit/b

:\ \ \ \ \ \ 메모장

:\ \ \ \ \ 메모장

if/I not " % PTH % " = " % windir % \ "(

"atr=non"

설정)

Exit/b

:\\Uxtheme.dll

Set "atr=wfp"

:\\ Comctl320

Set "pth=%windir%\system32"

Exit/b

:\\\\ Comctl321

설정 " PTH = % windir % \ WinSxS \ x86 _ Microsoft. Common-Controls _ 6595 b 64144 CCF 1df _ 6 . 0 . 0 . 0 _ x-ww _ 1382 d70a \"

Exit/b

:\\\ Comctl322

set " PTH = % windir % \ WinSxS \ x86 _ Microsoft. windows . Common-Controls _ 6595 b 64144 CCF 1df _ 6 . 0 . 10.0 _ x-ww _ f7fb 5805 \"

Exit/b

:\\\ Comctl323

set " PTH = % windir % \ WinSxS \ x86 _ Microsoft. windows . Common-Controls _ 6595 b 64144 CCF 1df _ 6 . 0 . 2600 . 1331 _ x-ww _ 7 abf 6d 02 \"

Exit/b

:\\\ Comctl324

set " PTH = % windir % \ WinSxS \ x86 _ Microsoft. windows . Common-Controls _ 6595 b 64144 CCF 1df _ 6 . 0 . 2600 . 1515 _ x-ww _ 7 bb 98 b 8 a \"

Exit/b

:\\\ Comctl325

set " PTH = % windir % \ WinSxS \ x86 _ Microsoft. windows . Common-Controls _ 6595 b 64144 CCF 1df _ 6 . 0 . 2600 . 2180 _ x-ww _ a84f 1ff 9 \ "

Exit/b

:\\\\ Commdlg0

Set "pth=%windir%\system"

Exit/b

:\\\ "

Exit/b

:\\\ Notepad1

Set "pth=%windir%\system32"

Exit/b

:\\\Shellstyle0

Set "pth=% windir%\system32"

Exit/b

:\\\\ Shellstyle1

Set "PTH = % windir % \. 리소스 \ 테마 \ 루나 \ 셸 \ 일반 색상"

Exit/b

:\\\\ Shellstyle2

설정 " PTH = " % windir % \ 리소스 \ 테마 \ 루나. \ 셸 \ 메탈릭 \"

Exit/b

:\\\ Shellstyle3

set " PTH = % windir % \ 리소스 \ 테마 \ 루나 \ 셸 \ 홈스테드 "

Exit/b

*스크립트 줄 형식 목록

:\RNO

설정 "mod=복원"

설정 "number=%~2 "

Set "opt=%~3"

Exit/b

:\R-O

Set "mod=Restore"

Set "quantity="

Set "opt=%~2"

Exit/b

:\RN-

Set "mod=Restore "

Set "quantity=%~2"

Set "opt="

Exit/b

:\R -

설정 "mod=복원"

Set "quantity="

Set "opt="

Exit/b

< p>:\-N-

Set "mod=%sys%"

Set " num=%~1"

Set "opt="

Exit/b

:\-No

Set "mod=%sys%"

Set " num=%~1"

Set "opt=%~2"

Exit/b

:\ - O

Set "mod=%sys%"

Set "quantity="

Set "opt=%~1"

Exit/b

:\M -

Set "" mod=%~1"

Set "quantity="

Set "opt="

Exit/b

:\MN-

Set " mod=%~1"

Set "quantity=%~2"

Set "opt="

Exit/b

:\M-O

Set "mod=%~1"

Set "Quantity="

Set "opt=%~2"

Exit/b

:\MNO

Set "mod=%~1"

Set "수량=%~2"

set "opt=%~3"

Exit/b

:\ -

set "mod=%sys% "

설정 "수량="

설정 "opt="

종료/b

* Clear _ WFP _ 메시지 . VBS- WFP 메시지 지우기

WFP 메시지 지우기

const win="Windows 파일 보호"

const wi2="구성 요소를 찾을 수 없습니다"

set arg=wscript.arguments

If arg.count then < /p>

flg = 인수 item(0)

else wscript.echo "오류 인수"

wscript.quit

If ... it ends

set w = . wscript . createobject(" wscript . shell ")

set f = wscript . createobject(" 스크립팅 . 파일 시스템 개체 ")

x = 999

그리고 x & gt0

If w.appactivate(win) then

w . sendkeys"{ ESC }"

w . sendkeys"{ TAB } { ENTER }"

If ... it ends

If w.appactivate(wi2) then

w . sendkeys "{ ESC } { TAB } { ENTER }"

이러한 경우 종료됩니다...

If . 파일이 존재한다면(flg ),then

x=45

f . 파일 삭제 (flg)

파일이 있으면 ... 종료

wscript.sleep 333

x=x-1