2017-03-13 18 views
1

나는 주변을 둘러 보았고 내가 한 연구와 잘 작동하지 않는 것처럼 보입니다..BAT 파일 도움말 (자동으로 2 개의 경로 제거)

주어진 시스템에서 Malwarebytes 2.0 및 3.0을 제거 할 워크 스테이션에 적용 할 GPO를 만들려고합니다. 이렇게하면 엔터프라이즈 버전을 출시 할 수 있습니다.

은 내가 내 .BAT 파일에있는 것은 이것이다 : 내가 발견, 그러나

@echo off 

cd "C:\Program Files (x86)\Malwarebytes Anti-malware\" 
unins000.exe /verysilent /suppressmsgboxes /norestart 

cd "C:\Program Files\Malwarebytes\Anti-Malware\" 
unins000.exe /verysilent /suppressmsgboxes /norestart 

을 그 경로 중 하나는 위의 종료 (1 항상 존재하지 않습니다) 그것은 팝업 것보다하지 않는 경우 명령 프롬프트에 오류가 있습니다. 가능한 경우 상자가 전혀 나타나지 않도록하고 싶습니다. 그때 오류가있는 VBS와 함께이 작업을 수행하려고 :

compilation error: Invalid character

이는 스크립트입니다 경로가 실제로 이동하기 전에 존재하는 경우

Dim objShell 
Set objShell = WScript.CreateObject(WScript.Shell) 
Sub MalwareBytes() 
On Error Resume Next 
objShell.Run(%ProgramFiles%Malwarebytes Anti-malwareunins000.exe verysilent 
suppressmsgboxes norestart) 

objShell.Run(%ProgramFiles(x86)%MalwarebytesAnti-Malwareunins000.exe 
verysilent suppressmsgboxes norestart) 
End Sub 
Set objShell = Nothing 

답변

2

방법 에서요, 대한, 확인 그곳에? 당신의 구문이 올바르지 않기 때문에

if exist "C:\Program Files (x86)\Malwarebytes Anti-malware" (
    cd "C:\Program Files (x86)\Malwarebytes Anti-malware" 
    unins000.exe /verysilent /suppressmsgboxes /norestart 
) 

당신의 VBScript를 작동하지 않는 이유입니다. CreateObject()에 대한 인수와 명령 문자열을 큰 따옴표로 묶어야합니다. 후자의 경우 중첩 된 큰 따옴표를 사용하면 공백이있는 경로가 있기 때문입니다. VBScript에도 경로가 실제로 있는지 확인하는 것이 더 깔끔한 것은 말할 것도 없습니다.

+1

고마워요! 나는 "존재한다면"단지 배우는 것을 인식하지 못했습니다. 고맙습니다! –

+0

질문에 답변 한 경우 "답변 됨"으로 표시하십시오. 2 분의 [둘러보기]를 가져 가면 그 방법을 알려줍니다 (회색 체크 표시를 클릭합니다). :-) –

+1

완료, thanks T.Heron. 이것은 해결책이며 단지 형식을 더 잘 조정해야합니다. :) 모든 사람의 도움을 감사하며 나는 전문가가되어 줄 때 다른 사람들을 도울 수 있기를 고대합니다. –