Ik heb een laptop en een desktop en deze synchroniseer ik met elkaar dmv de Microsoft Synctoy. Dit werkt uitstekend, alleen heb ik 3 folderparen die gesyncd moeten worden. Synctoy heeft de mogelijkheid om dit unattended te doen, alleen is het niet mogelijk om synctoy 3 keer tegelijkertijd open te hebben. Wat ik dus wil doen is een batch bestand schrijven waarin ik synctoy.exe opstart, dan de batchfile laat checken of synctoy.exe nog actief is en als dit niet het geval meer is de volgende synctoy.exe laat opstarten. Alleen hoe zorg ik ervoor dat mijn batchfile controleert of het programma geopend is?
Verwijderd
Dit doe je door in je batchfile synctoy mbv start /wait op te starten dus zoiets:
@Echo Off
Start /wait synctoy.exe
Als je het gehele path naar synctoy.exe moet opgeven en het staat in bv de program files folder dan moet je het tussen "" zetten dus:
Start /wait "c:\program files\synctoy.exe"
@Echo Off
Start /wait synctoy.exe
Als je het gehele path naar synctoy.exe moet opgeven en het staat in bv de program files folder dan moet je het tussen "" zetten dus:
Start /wait "c:\program files\synctoy.exe"
[ Voor 5% gewijzigd door Verwijderd op 24-03-2006 10:29 ]
Ik zou voor WSH gaan (VBScript of JScript) ipv. een batch. Is wat flexibeler en dan heb je ook geen "lelijk" scherm open staan.
Ik gebruik dit VBScript een enkele keer om max. 1 instantie van een programma te starten. Heeft natuurlijk wat kleine aanpassingen nodig: zet er een loop omheen met steeds bijv. 'WScript.Sleep 5000' en doe het drie keer met drie parameters
VBScript:
1
2
3
4
5
6
7
8
9
10
11
| Set WshShell = WScript.CreateObject ( "WScript.Shell" ) programma = "foo.exe" maxAantalKeer = 1 n = 0 for each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_Process") c=instr(programma,process.name) if c <> 0 then n = n + 1 Next if n < maxAantalKeer then WshShell.Run programma |
Ik gebruik dit VBScript een enkele keer om max. 1 instantie van een programma te starten. Heeft natuurlijk wat kleine aanpassingen nodig: zet er een loop omheen met steeds bijv. 'WScript.Sleep 5000' en doe het drie keer met drie parameters
edit:
Tralalalaaa. Inderdaad is gewoon (twee of) drie keer 'start /wait' nog een stuk makkelijker. Zie boven en negeer mijn methode maar
Tralalalaaa. Inderdaad is gewoon (twee of) drie keer 'start /wait' nog een stuk makkelijker. Zie boven en negeer mijn methode maar
[ Voor 10% gewijzigd door F_J_K op 24-03-2006 10:32 ]
'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)
bedankt voor de reacties. Ik ga inderdaad voor de eerste optie 
Ik ga het zo direct testen
Update:Helaas lukt het me niet, probleem is dat ik de volgende opdracht moet draaien:
Alleen geeft de batch als probleem dat hij in de knoop komt met de aanhalingstekens..... hoe los ik dat op?
Ik ga het zo direct testen
Update:Helaas lukt het me niet, probleem is dat ik de volgende opdracht moet draaien:
code:
1
| C:\Program Files\Microsoft\SyncToy\Syntoc.exe -R"Documenten" |
Alleen geeft de batch als probleem dat hij in de knoop komt met de aanhalingstekens..... hoe los ik dat op?
[ Voor 64% gewijzigd door awenger op 24-03-2006 22:13 ]
Ik ken de commandoine parameters van synctoy niet, maar waarom hier aanhalingstekens gebruiken aangezien er geen spatie is?
'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)
Misschien ook aanhalingstekens rond hele commando met pad zetten?
You almost can’t blame him or the other diet gurus for leaning in on the techno-bullshit market; it’s hard to fill up a 300 page diet book on “eat a bit less and find a type of exercise that doesn’t make you hate life.”
Pagina: 1