2017-10-06 8 views
-1

나는 VB 스크립트 파일을 가지고 있습니다. Windows 2012 서버에서 CScript를 사용하여이 VBscript를 실행합니다. VBscript는 서버에서 정상적으로 실행됩니다.Powershell에서 VBScript를 호출하고 있습니다.이 올바른 방법일까요?

하지만 Powershell에서이 VBScript 파일을 호출해야합니다. 이것이 내가 한 일이다.

편의상

이 내가이 test.ps1

$acommand = "C:\Windows\System32\Cscript.exe C:\deleteit\echo.vbs" 

    Invoke-Expression $acommand 
+0

... 그리고입니까? 가능하다면 VBS를 PS로 변환하고 이것을 피하는 것이 좋습니다. 기본적으로 현대 스크립팅 언어에서 구식 스크립팅 언어를 호출합니다. 하나의 플랫폼을 고집한다면 더 간단해질 것입니다. –

+1

왜 그렇게하고 있습니까? exe를 실행하는 올바른 방법은 exe *를 실행하는 것입니다. PowerShell은 셸이며 직접 실행할 수 있습니다. C : \ windows \ system32 \ cscript.exe c : \ deleteit \ echo.vbs' – TessellatingHeckler

+0

PS C : \> C : \> cd c : \ windows \ system32 \ cscript.exe c : \ deleteit \ echo.vbs C : \> cd : 'C : \> cd'라는 단어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능 프로그램의 이름으로 인식되지 않습니다. 이름의 철자 또는 경로가 포함되어있는 경우 을 확인하고 경로가 올바른지 확인한 후 다시 시도하십시오. 줄 번호 : 1 문자 : 1 + C : \> C : \ windows \ system32 \ cscript.exe c : \ deleteit \ echo.vbs + ~~~~~~ + CategoryInfo : ObjectNotFound : (C : \> cd : String) [], CommandNotFo undException + FullyQualifiedErrorId : CommandNotFoundException – Jason

답변

0

그것은 실행하는 올바른 방법을 썼다

Msgbox("hello world") 

내 VBScript 파일에있는

echo.vbs 것입니다 외부 응용 프로그램 인 경우 명령 줄 exe 또는 VBS 스크립트를 사용하는 경우 동일한 기술을 사용할 수 있습니다.

개인적으로, 나는보다는 외부 VBS 스크립트를 호출 PowerShell 스크립트에 기능을 추가하고자하는 것입니다,하지만 그건 그냥 내 2 센트 : 무슨 일이 있었는지

+0

"* 외부 응용 프로그램을 실행하는 올바른 방법입니다."- 그렇게하지 마십시오. 응용 프로그램을 직접 실행하는 것이 가장 옳습니다.'&'호출 연산자는 경로의 공백을 처리하기위한 문자열에 있어야하며, 인수를 사용하여 재생해야하는 경우에는 다음에 'Start-Process'가 가장 적합합니다 창 스타일 및 대기. 'Invoke-Expression'은 가장 권위가 낮습니다. PowerShell 명령을 문자열로 래핑 한 후 다시 PowerShell 엔진으로 공급합니다. 원형이고 중복되었습니다. 문자열에서 가져온 것이고 문자열에서 가져온 것이고 invoke-expression으로 공급되지 않으면 작동하는 문자열이 무엇이든간에. – TessellatingHeckler

+0

@TessellatingHeckler 문제는 PowerShell을 사용하는 대신 VBScript를 처음 사용하는 것입니다. 나는 Gareth가 말한 것을 당신이 모두 동의한다면, 잘못된 투표라고 생각하지 않는다. 하향 투표는 가혹한 일이다. – Lankymart

+0

나는 powershell을 사용하지 않는 이유가 있습니다. 내가 쓴 VB 스크립트는 DLL을 사용하고있다. 상자에 등록했지만 PowerShell은 찾을 수 없다고 말합니다. 그러나 VBScript는 DLL을 볼 수 있습니다. 그래서 VBscript – Jason