Toon posts:

[VBS] Variable buiten een script?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogelijk om een soort variable buiten een scritp te hebben?

Ik ben bezig met een vb script, wat het script onder andere moet doen is een E-mail versturen. Het script wordt om de uur opnieuw aangeroepen en het is niet de bedoeling dat ie iedere keer het zelfde mailtje stuurt. Daarom zou het handig zijn als hij eerst kijkt of een e-mail versuurt is, zo niet; email versutren.

Ik dacht zelfs eerst aan een variable sendmail iets van:
code:
1
2
3
4
5
6
7
8
Dim Sendmail 
Sendmail = 0

If condition = met Then
    If Sendmail <> 1
        Sendmail
    End If
End If


Maar dit werkt natuurlijk niet omdat iedere keer als de script opniuew wordt aangeroepen de variable Sendmail gereset wordt.

Ik vroeg me af wat hier een alternatief voor kan zijn?

bvd

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Alternatief hiervoor kan zijn:
- opslaan in een file
- opslaan in het register
- script altijd laten draaien en zelf elk uur triggeren (dan wordt het een service)
- ...

My personal website


Verwijderd

Topicstarter
Laatste is geen optie maar aan de andere twee zat ik ook te denken. Om bijvb een bestand te renamen ofzo.

Vraag me alleen af wat makkelijker en minder error gevoelig is?

Verwijderd

Topicstarter
Nog suggesties mensen?

Ik heb hulp nodig met dit. ;(

Ik maak nu gebruik van de rename functie. heb nu twee subs:

code:
1
2
3
4
5
6
7
8
9
10
11
Set objFSO = CreateObject("Scripting.FileSystemObject")

Sub noMailSend
objFSO.MoveFile "C:\sendmail" , "C:\NOTsendmail"
End Sub

en:

Sub mailSend
objFSO.MoveFile "C:\NOTsendmail" , "C:\sendmail"
End Sub


Ik weet alleen wat voor code ik in de If statement moet hebben. :?

[ Voor 89% gewijzigd door Verwijderd op 09-03-2005 15:32 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

In een file is handiger voor zoiets lijkt me. Maar waarom is een service geen optie? Verder zou je ook kunnen kijken of je geen database kan gebruiken, misschien is dat handiger. Voor zover ik weet kun je gewoon een Access file gebruiken in VBS. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

-NMe- schreef op woensdag 09 maart 2005 @ 15:29:
Verder zou je ook kunnen kijken of je geen database kan gebruiken, misschien is dat handiger. Voor zover ik weet kun je gewoon een Access file gebruiken in VBS. :)
Een complete database gaan gebruiken om de waarde ja of nee op te slaan? Lijkt me enigszins overkill...

Even een duwtje de goede richting in wat je if-statement betreft: je moet dus controleren of een bestand met een bepaalde naam bestaat. Of misschien beter: welke van de twee mogelijke bestanden bestaat.

Zelf zou ik overigens eerder gaan voor het opslaan van een waarde in je bestand. Die kun je dan uitlezen en daar een redelijk simpel if-statement op loslaten.

My personal website


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

OZ-Gump schreef op woensdag 09 maart 2005 @ 15:39:
Een complete database gaan gebruiken om de waarde ja of nee op te slaan? Lijkt me enigszins overkill...
Dat hangt er natuurlijk vanaf hoeveel mensen het script moet kunnen mailen, en wat het script nog meer moet kunnen. Ik lees een "onder andere" in de topicstart. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
OZ-Gump schreef op woensdag 09 maart 2005 @ 15:39:
[...]

Een complete database gaan gebruiken om de waarde ja of nee op te slaan? Lijkt me enigszins overkill...

Even een duwtje de goede richting in wat je if-statement betreft: je moet dus controleren of een bestand met een bepaalde naam bestaat. Of misschien beter: welke van de twee mogelijke bestanden bestaat.

Zelf zou ik overigens eerder gaan voor het opslaan van een waarde in je bestand. Die kun je dan uitlezen en daar een redelijk simpel if-statement op loslaten.
Denk je dat een bestand met een variable waarden erin makkelijker is dan een bestand renamen? hmm okay, ik ga zoeken.

oh en ik zit even met het pad. Ik heb nu zo iets:

code:
1
2
3
4
5
6
Dim scriptPath
scriptPath = "C:\Documents and Settings\Administrator\Desktop\mailscript betas\BETAs"
Set objFSO = CreateObject("Scripting.FileSystemObject")


objFSO.MoveFile scriptPath & "sendmail" , scriptPath "NOTsendmail"


Werkt natuurlijk niet, enig idee wat ik fout doe?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Denk je dat een bestand met een variable waarden erin makkelijker is dan een bestand renamen? hmm okay, ik ga zoeken.
Dat niet alleen, denk alleen al aan de fragmentatie die een dergelijke werkwijze kan veroorzaken...

Waarom werkt je voorbeeld 'natuurlijk' niet (zoek dat antwoord en je hebt de oplossing ;))
Bij de tweede scriptpath doe je geen string concattenatie meer? Oftewel: je bent een & vergeten tussen scriptpath en "NOTsendmail".
Verder eindigt je scriptpath niet met een backslash, en voeg je deze ook nergens toe. Je probeert dus het bestand C:\Documents and Settings\Administrator\Desktop\mailscript betas\BETAssendmail te renamen.... Je zou misschien iets nauwgezetter te werk moeten gaan.

[ Voor 11% gewijzigd door OZ-Gump op 09-03-2005 15:52 ]

My personal website


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Dit begint wel erg basic debug werk te worden. Hoeveel VBScript ervaring heb je? Misschien is het een idee om een tutorial of twee te gaan volgen?
Wat mij zo op het blote oog opvalt is dat je de samenstelling van je pad niet helemaal goed doet, je bent volgens mij een backslash tussen je pathname en je filename vergeten. Bovendien ontbreekt in het tweede onderdeel een ampersand (&)

Verwijderd

Topicstarter
Goed, dat werkt.

Maar ik denk dat ik jou manier ga proberen.

Zou je me kunnen vertellen hoe precies een waarden in een bestand kan gezet worden en wat voor If statement er gebruikt moet worden?

Verwijderd

Topicstarter
nou dit is wat het is geworden hoor:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim scriptPath
scriptPath = "C:\Documents and Settings\Administrator\Desktop\mailscript betas\BETAs\"
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(scriptPath & "NOsendmail") Then
    noMailSend
Else
    mailSend

End If


Sub mailSend
objFSO.MoveFile scriptPath & "sendmail" , scriptPath & "NOsendmail"
End Sub

Sub noMailSend
objFSO.MoveFile scriptPath & "NOsendmail" , scriptPath & "sendmail"
End Sub


het werkt maar ik ben er niet blij mee, liever een waarde in een bestand zetten.

[ Voor 16% gewijzigd door Verwijderd op 09-03-2005 16:09 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Zoekt en gij zult vinden: :)
http://www.tutorial-web.com/asp/fso/

Kijk vooral eens naar het TextStream onderdeel.

Dit was de eerste hit van een zoekactie, er staan er nog meer:
http://www.google.nl/sear...ystem+object+tutorial&lr=
Pagina: 1