programing

Excel VBA를 사용하여 명령 프롬프트에서 명령 실행

javamemo 2023. 4. 15. 08:13
반응형

Excel VBA를 사용하여 명령 프롬프트에서 명령 실행

VBA를 사용하여 명령어프롬프트에 전달해야 하는 고정 명령어가 있습니다.이 명령어는 "http://a.pl c:\filename"과 같이 실행됩니다.

다음 명령어를 사용하려고 하는데 명령 프롬프트만 열리고 명령어는 실행되지 않습니다.

Call Shell("cmd.exe -s:" & "perl a.pl c:\temp", vbNormalFocus)

확인해주세요.

S 파라미터는 그 자체로는 아무것도 하지 않습니다.

/S      Modifies the treatment of string after /C or /K (see below) 
/C      Carries out the command specified by string and then terminates  
/K      Carries out the command specified by string but remains  

대신 이런 걸 해 봐

Call Shell("cmd.exe /S /K" & "perl a.pl c:\temp", vbNormalFocus)

명령어 실행 시 명령어창을 열지 않는 한 이 명령어에 "cmd.exe"를 추가할 필요가 없습니다.셸이 자체적으로 명령을 실행해야 합니다.

Shell("perl a.pl c:\temp")



-편집-
명령어가 완료될 때까지 기다리려면 @Nate Hekman이 답변에 표시하는 것과 같은 작업을 수행해야 합니다.

Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1

wsh.Run "cmd.exe /S /C perl a.pl c:\temp", windowStyle, waitOnReturn

언급URL : https://stackoverflow.com/questions/17956651/execute-a-command-in-command-prompt-using-excel-vba

반응형