티스토리 뷰

[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

 위와 같이 변경해서 스크립트 수행시 잘 동작 한다.

 

댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글