티스토리 뷰
[VBS] Space 포함된 파일 실행하기
Space가 포함된 파일을 VBS 의 WScript.Run 을 수행하여 호출하면 정상적으로 동작이 수행되지 않고 에러가 발생한다.
이유는 파일 경로상에 공백이 존재하는 경우 이를 Script에서 인지하지 못하고 에러가 발생한다.
(VBS 문법 자체가 띄어쓰기만으로 매게변수를 구분함)
따라서 쌍따옴표 (Double Quotes) 로 묶어주면 정상적으로 동작이 가능하다.
아래 스크립트는 띄어쓰기가 포함된 파일명을 매게변수로 전달받으면
전체 띄어쓰기를 Argument 값에 넣지 못하므로 ::: 이라는 띄어쓰기 대체용 문자를 교체하고
파일 전체 경로 양쪽 끝에 Quote 으로 묶어서 수행해주는 동작을 하는 예제이다.
# Example.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim ArgCount, FilePath, temp
Const Quote = """"
Set Arg = WScript.Arguments
ArgCount = WScript.Arguments.Count
If ArgCount >= 1 Then
temp = Arg(0)
FilePath = Replace(temp, ":::"," ")
End If
WshShell.Run(Quote & FilePath & Quote)
WScript.Sleep(2000)
Set WshShell = Nothing
> Example.vbs C:\Users\choi\Desktop\Test 1 2 3\music.mp3
위와같이 수행할 목적이나 띄어쓰기를 전송시에 Arguement 구분이 힘들기 때문에 아래와 같이 Space를 ::: 으로 변경해주는 사전 동작이 필요하다. (만약 띄어쓰기 포함된 Arguement 만으로 수행하려면 이와 다른 방안으로 구현 필요)
> Example.vbs C:\Users\choi\Desktop\Test:::1:::2:::3\music.mp3
위와 같이 변경해서 스크립트 수행시 잘 동작 한다.
'Computer > VBS (Visual Basic Script)' 카테고리의 다른 글
[VBS] Microsoft Edge 실행 및 복합 동작 시나리오 (0) | 2020.03.10 |
---|---|
[VBS] SendKeys Input Keycode (0) | 2020.03.09 |
[VBS] WshShell.SendKeys (0) | 2019.05.23 |
[VBS] Process Find and Activate (0) | 2019.05.23 |
VB스크립트란 (VBS란) (0) | 2019.05.22 |
댓글