2011-01-06, 20:55
  #1
Medlem
FantaBurks avatar
Behöver hjälp 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

Någon som vet?

Hitta även detta som ska vara ett skript för att kolla ifall en fil skapas i mappen, men förstår väldigt 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 väl kolla om mappen blir större än t.ex 100MB så ska ljudet spelas upp? Eller ska det fungera oavsett hur många mappar som läggs till i mappeN???????????
Citera
2011-01-06, 21:28
  #3
Medlem
FantaBurks avatar
Nä, jag förklara det dåligt. Så här 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 där varje 50sekunder typ, och ifall den finns där så ska en ljudfil spelas upp. Någon aning om hur man gör det? Efter att ljudet spelas ska den sluta kolla efter bugreport.txt. Och börja igen när 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
Glöm inte att skriva in katalognamnet i if-satsen.
Kod:
@echo off
if exist C:\bugreport.txt 
mplay32 /play /close c:\windows\media\chimes.wav

Lägg det sen i schmalagda aktiviteter att köra 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
Glöm inte att skriva in katalognamnet i if-satsen.
Kod:
@echo off
if exist C:\bugreport.txt 
mplay32 /play /close c:\windows\media\chimes.wav

Lägg det sen i schmalagda aktiviteter att köra vart 50nde sekund.

Ett annat förslag, om jag får bygga vidare på ditt förslag ovan, vore att använda ping-kommandot (enda sättet jag vet som funkat för mig, att i ett bat-script få den att vänta en angiven tid innan den fortsätter. googla så hittar du hur man använder det) och säga åt den att loopa om och om igen för att kolla om filen finns där,om den inte hittar filen. Och om den gör det, spela upp ljudet och sedan stänga av sig själv. På så sätt kommer den inte fortsätta köra efter att ha meddelat användaren med ljudet, förrän man själv startar den igen.
Citera
2011-01-07, 00:46
  #6
Medlem
Som redan nämnts ovan, så skulle en BAT-fil funka om det fanns en Sleep/Wait-funktion. Det går att använda "ping" workaround istället, men det luktar surt. Använd ett VBS script istället.

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