2011-01-06, 20:55
  #1
Medlem
FantaBurks avatar
Behver hjlp med att skapa ett .bat skript eller liknande som automatiskt kollar ifall ett text dokument har skapats i mappen, och om det sker s ska den automatiskt spela upp en ljud (.wav) fil.

Hittills bara hittat ett sett att spela upp ljudet:
Kod:
mplay32 /play /close c:\windows\media\chimes.wav

Ngon som vet?

Hitta ven detta som ska vara ett skript fr att kolla ifall en fil skapas i mappen, men frstr vldigt lite av det:

Kod:
'Create needed variables
Dim SOURCE, TARGET, waitTime, objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

'=============================================
'========== USER DEFINED VARIABLES ===========
'=============================================
SOURCE = "x:\Test1"
TARGET = "c:\Test1"
SECONDS = 5 'Time to wait between checking SOURCE
'=============================================
'=============================================

'Verify if source folder exists
If Not (objFSO.FolderExists(SOURCE)) Then
MsgBox "Source Folder Missing"
Else
'Create target directory if does not exist
If Not (objFSO.FolderExists(TARGET)) Then
objFSO.CreateFolder(TARGET)
End If
'Run the moveFiles function
moveFiles
End If

'=============================================
Sub moveFiles
'=============================================
'Copy files from SOURCE to TARGET
objFSO.CopyFolder SOURCE, TARGET

'Delete the TARGET folder (and contents)
objFSO.DeleteFolder SOURCE
'Recreate TARGET folder
objFSO.CreateFolder(SOURCE)

'Wait time before checking SOURCE again
WScript.Sleep SECONDS * 1000

'Recall the moveFiles function
moveFiles

'=============================================
End Sub 'replicateFolders
'=============================================
__________________
Senast redigerad av FantaBurk 2011-01-06 kl. 20:58.
Citera
2011-01-06, 21:09
  #2
Medlem
Du kan vl kolla om mappen blir strre n t.ex 100MB s ska ljudet spelas upp? Eller ska det fungera oavsett hur mnga mappar som lggs till i mappeN???????????
Citera
2011-01-06, 21:28
  #3
Medlem
FantaBurks avatar
N, jag frklara det dligt. S hr menar jag:

Ett program skapar en bugreport.txt fil ibland i en mapp p C:/. Jag vill skapa ett .bat skript som kollar ifall den filen finns dr varje 50sekunder typ, och ifall den finns dr s ska en ljudfil spelas upp. Ngon aning om hur man gr det? Efter att ljudet spelas ska den sluta kolla efter bugreport.txt. Och brja igen nr jag ppnar .bat filen igen.
Citera
2011-01-07, 00:01
  #4
Medlem
Om det r ett statiskt namn p den filen s fixa ett script som kollar om filen finns och spela ljudet isf.
Sitter i ubuntu s kan inte testa detta skriptet men kan funka
Glm inte att skriva in katalognamnet i if-satsen.
Kod:
@echo off
if exist C:\bugreport.txt 
mplay32 /play /close c:\windows\media\chimes.wav

Lgg det sen i schmalagda aktiviteter att kra vart 50nde sekund.
Citera
2011-01-07, 00:12
  #5
Medlem
Citat:
Ursprungligen postat av magnetofil
Om det r ett statiskt namn p den filen s fixa ett script som kollar om filen finns och spela ljudet isf.
Sitter i ubuntu s kan inte testa detta skriptet men kan funka
Glm inte att skriva in katalognamnet i if-satsen.
Kod:
@echo off
if exist C:\bugreport.txt 
mplay32 /play /close c:\windows\media\chimes.wav

Lgg det sen i schmalagda aktiviteter att kra vart 50nde sekund.

Ett annat frslag, om jag fr bygga vidare p ditt frslag ovan, vore att anvnda ping-kommandot (enda sttet jag vet som funkat fr mig, att i ett bat-script f den att vnta en angiven tid innan den fortstter. googla s hittar du hur man anvnder det) och sga t den att loopa om och om igen fr att kolla om filen finns dr,om den inte hittar filen. Och om den gr det, spela upp ljudet och sedan stnga av sig sjlv. P s stt kommer den inte fortstta kra efter att ha meddelat anvndaren med ljudet, frrn man sjlv startar den igen.
Citera
2011-01-07, 00:46
  #6
Medlem
Som redan nmnts ovan, s skulle en BAT-fil funka om det fanns en Sleep/Wait-funktion. Det gr att anvnda "ping" workaround istllet, men det luktar surt. Anvnd ett VBS script istllet.

Ex nedan (watchfile.vbs):
Kod:
Dim WatchFile, NotificationFile, PollTime

WatchFile = "c:\bugreport.txt"
SoundFile = "c:\windows\media\chimes.wav"
PollTime  = 10 	' time to wait between each poll

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Do While not objFSO.FileExists(WatchFile)
	'Wscript.StdOut.WriteLine "Not found"
	WScript.Sleep PollTime * 1000
Loop

'Wscript.StdOut.WriteLine "Found!!!"

Dim Player
Set Player = createobject("WMPlayer.OCX")
Player.url =  SoundFile
Do until (Player.playState = 1)
	Wscript.Sleep 250
Loop
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in