2013-08-14 1 views
1

나는 VBScript를 처음 사용하면서 특정 시간에만 그리고 특정 시간에만 파일 (WAV 형식)을 재생하는 코드 문자열을 작성하려고합니다. 코드의 함께 여러 조각을 조립할 후 나는 왼쪽 된 인터넷에있는 다음 내가에 있던 시간 이내에, 나는이에 실행 한 날짜에 대해이 작업을 설정했다, 그래서 좋아VBScript - 파일 실행을위한 날짜 및 시간 제한

Dim myDateString 
Dim thing1 
thing1 = 0 
myDateString = Date() 
If myDateString < "13/08/13" Then 
thing1 = 1 
end if 
if thing1 = 1 then 
If myDateString > "15/08/13" Then 
thing1 = 2 
end if 
end if 

if thing1 = 2 then 

hournow = hour(Time()) 
If hour(Time()) >= 9 And Hour(Now()) < 22 Then 

set WshShell = CreateObject("WScript.Shell") 

music = "C:\Users\MYUSERNAME\Desktop\MYSOUND.wav" 

WshShell.Run "wmplayer """ & music & """",0,True 

Else  
wscript.quit 1 
End If 

Else 
wscript.quit 1 
End If 

을하지만 을. 작동하지 않았다. 나는 VBS가 MYSOUND.wav를 시작하기를 기대했지만 그렇게하지는 않았다. 파일을 실행할 때 오류가 없으므로 내가 잘못했는지 궁금합니다.

사람이 내가 뭘 잘못했는지 말해 줄 수 있고, 그것을 좋은 것 그 해결 방법을하면 내가

윈도우 7을 실행

.

누구든지 수정 된 버전의 코드를 게시 할 수 있다면 두 배!

답장을 보내주세요.

답변

2

먼저 코드를 들여 쓰고 변수에 의미있는 이름을 지정하십시오!

그런 다음 문자열을 날짜와 비교하려고하기 때문에 날짜 비교가 작동하지 않습니다. 이것은 대개 작동하지 않습니다 ("시스템 로케일"에 따라 다름) : 날짜 유형 변수와 실제 날짜 비교 함수 (VBScript의 DateDiff)를 사용해야합니다.

(편집 : 안스 Wiechers가 지적했듯이, 당신은 VBScript를,에 날짜를 비교 참조 DateDiff를 사용할 필요가 없습니다 "DateStart < = 지금 그리고 지금 < = DateEnd"잘 할 것)

이 시도 : 이 같은 작은 스크립트를 디버깅 할 경우

Dim DateStart, DateEnd, WshShell, music 

DateStart = DateSerial(2013, 8, 13) 
DateEnd = DateSerial(2013, 8, 15) 
If DateDiff("D", DateStart, Now) >= 0 And DateDiff("D", Now, DateEnd) >= 0 Then 
    If Hour(Now) >= 9 And Hour(Now) < 22 Then 
     '*** delete after debugging *** 
     MsgBox "play sound" 
     Set WshShell = CreateObject("WScript.Shell") 
     music = "C:\Users\MYUSERNAME\Desktop\MYSOUND.wav" 
     '*** 2nd parameter : 0 hides wmplayer, 1 shows it *** 
     WshShell.Run "wmplayer """ & music & """", 1, True 
    Else 
     '*** delete after debugging *** 
     MsgBox "Not the right time" 
    End If 
Else 
    '*** delete after debugging *** 
    MsgBox "Not the right day" 
End If 

또한, 당신은 보여줄 것입니다있는 MsgBox하여 "WScript.Quit 1"대체 당신의 예에서 (실제로 실행 무슨의 간단한 추적을 할 수있는 MsgBox를 호출 할 수 있습니다 날짜가 제대로 비교되지 않았습니다.

+0

너는 일들을 너무 복잡하게 만들고있어. 날짜는 일반적인 비교 연산자 ('DateStart

+0

대단히 감사합니다! 내 문제가 완벽하게 해결되었습니다! 그냥 고통 스러울 때가 있습니다. 특정 시간까지 기다릴 수있는 방법이 있습니까 (스크립트가 사운드 파일을 재생하기 전에). 그렇지 않다면, 지금까지 당신의 노력에 감사드립니다! 충분한 평판을 얻은 경우 귀하의 답변에 투표 할 수 있습니다! – CerealKiller

+0

신경 쓰지 마라, 나는 두 번째 것을 나 자신으로 해결했다 :) – CerealKiller