2014-10-30 2 views
0

배치 파일에이 값이 있는데 그 값이 작동합니다. 내 문제는 내가 다른 컴퓨터에서 사용하는 것과 같은 방식으로 "symatech"를 저장하지 않는다는 것입니다.배치에 "search"인수가 누락되었습니다.

@ECHO === Checking for Symantech Products 
IF NOT EXIST "C:\Program Files\Symantec" GOTO DoneSymantec 
ECHO One moment while we remove Symantec Software... 
Call "%~d0\exe\Norton_Removal_Tool.exe" 
:DoneSymantec 

그래서 제 질문은 다음과 같이 그것을 가지고 할 수있는 방법이있다 : 존재하지 않는 경우는 * 폴더는 프로그램 파일에 노턴 또는 symantech 고토가

+0

목적에 합당한 +1 ... – Magoo

답변

0

dir /b /s /ad "c:\program files\symantec이 폴더를 재귀 검색합니다 donesymantech 포함 "c : \ program files"로 시작하는 "symantec"

Check %errorlevel%, 찾을 경우 0, 1을 찾을 수 있습니다.

이론적으로 "C : \"로 시작할 수 있지만 끝내려면 시간이 오래 걸립니다. 검색을 시작할 위치를 알고있는 경우 (예제에서 "c : \ program files")

필요한 경우 "C : \ Program Files (x86)"에서 두 번째 검색을 시작하십시오. 전체 디스크를 한 번만 검색하십시오.

dir의 출력을보고 싶지 않으면 nirwana (>nul)로 리디렉션하십시오. 스크린 인쇄가 매우 느리기 때문에 검색 속도도 빨라집니다.

편집 : 당신은 단지 "만약 존재를"아는 대신 경로를 필요로하는 경우는 :

for /F "delims=" %%j in ('dir /b /s /ad "c:\Program Files\symantec" "c:\Program Files (x86)\symantec"') do @echo %%j 

("프로그램 파일"과의 검색 "프로그램 파일 (86)"; 필요에 따라 적용)

+0

스크립트 드라이브 및 언어를 휴대용으로 만들기 위해 % ProgramFiles % 및 % ProgramFiles (x86) %를 사용하는 것이 좋습니다 – gonzalezea

관련 문제