[BAT] Minimized & geen output

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dirtbiter
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:25
Ik weet niet of het überhaupt mogelijk is, maar ik wil eigenlijk het volgende.

Ik wil een batch file maken die in de opstarten map van Windows komt, en een bestand via een UNC path aanroept.

Ik moet de aanroep iets vertragen, omdat anders het UNC path niet bekend is.

De vertraging heb ik met PING gemaakt:
code:
1
2
ping -n 11 localhost > NUL
start //server/program.exe

Dit werkt prima, 10 seconden vertraging, leeg DOS scherm.

Alleen wil ik dat DOS scherm graag minimized hebben. Dat kan met start:
code:
1
2
start /min /wait ping -n 11 localhost > NUL
start //server/program.exe

PING wordt uitgevoerd, mijn batch file wacht erop, maar als je de batch file aankiest, zie je alsnog de PING output.

Dat is dus het probleem, ik krijg de PING output niet onderdrukt wanneer ik start gebruik.

Er zijn manieren om dit met VBS te scripten, en om de batch file via een snelkoppeling geminimaliseerd te starten, maar ik wil het eigenlijk graag in 1 batchfile doen die ik gewoon in de opstarten map kan zetten.

Kan dit, en zo ja, hoe?

Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
Ik denk dat je dit beter kunt doen gebruik makend van sleep.exe.
sleep.exe is onderdeel van de Windows Server 2003 Resource Kit

Dan wordt het zo
sleep 30
start /min \\server\program.exe


Achter sleep staat het aantal te wachten seconden.

[ Voor 7% gewijzigd door Turdie op 13-04-2010 16:20 ]


Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je zou kunnen proberen om de > te escapen met ^, dus dan krijg je iets als:

code:
1
start /min /wait ping -n 11 localhost ^> NUL

Acties:
  • 0 Henk 'm!

  • Dirtbiter
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:25
shadowman12 schreef op dinsdag 13 april 2010 @ 16:19:
sleep.exe is onderdeel van de Windows Server 2003 Resource Kit
Maar dan is het niet meer 1 simpel batch bestandje, maar moet ik zaken gaan installeren voordat het werkt.
Ik wil proberen het zo simpel mogelijk te houden.
elevator schreef op dinsdag 13 april 2010 @ 16:33:
Je zou kunnen proberen om de > te escapen met ^, dus dan krijg je iets als:

code:
1
start /min /wait ping -n 11 localhost ^> NUL
Dan start het hele ping gebeuren niet meer...

Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
Dirtbiter schreef op dinsdag 13 april 2010 @ 16:38:
[...]


Maar dan is het niet meer 1 simpel batch bestandje, maar moet ik zaken gaan installeren voordat het werkt.
Ik wil proberen het zo simpel mogelijk te houden.


[...]

Dan start het hele ping gebeuren niet meer...
sleep.exe is gewoon een tool die je via de windows resource kit kunt extracten je hoeft er niet veel voor te installeren. Als je zoekt op sleep.exe kun je hem ook wel apart downloaden en gebruiken.

[ Voor 7% gewijzigd door Turdie op 13-04-2010 16:44 ]


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Dirtbiter schreef op dinsdag 13 april 2010 @ 16:08:

Er zijn manieren om dit met VBS te scripten
[...]
Kan dit, en zo ja, hoe?
Controleer of het UNC pad bestaat en zo ja, voer applicatie uit.
Kan je prima met VBscript oplossen, Shell object en FileSystemobject zijn je vriendjes ;)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Moet het persee een UNC-pad zijn, anders misschien gewoon dit:

opstarten.bat:
net use s: \\server\$share
start /min s:\$programma
net use s: /delete /yes


Dan weet je dus zeker dat het programma altijd gestart wordt, aangezien die moet wachten op het aanmaken van de share. Daarna drop je die share weer gewoon.

Edit:
De geen output lijkt me dat het programma dat moet ondersteunen. Als het programma gewoon naar screen output, ipv de stdout kan je volgens mij niet zomaar ergens heen schrijven. Of het nu een bestand is, of in jouw gewenste geval: nergens heen.

[ Voor 27% gewijzigd door RaZ op 13-04-2010 19:03 ]

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • Turdie
  • Registratie: Maart 2006
  • Laatst online: 20-08-2024
RaZ schreef op dinsdag 13 april 2010 @ 18:58:
Moet het persee een UNC-pad zijn, anders misschien gewoon dit:

opstarten.bat:
net use s: \\server\$share
start /min s:\$programma
net use s: /delete /yes


Dan weet je dus zeker dat het programma altijd gestart wordt, aangezien die moet wachten op het aanmaken van de share. Daarna drop je die share weer gewoon.

Edit:
De geen output lijkt me dat het programma dat moet ondersteunen. Als het programma gewoon naar screen output, ipv de stdout kan je volgens mij niet zomaar ergens heen schrijven. Of het nu een bestand is, of in jouw gewenste geval: nergens heen.
Ik vraag me af als je een net use commando afvoert en er is op dat moment geen netwerkverbinding of ie dan wacht op netwerk. Ik denk het namelijk niet, maar dat zou ik na moeten zoeken.

Acties:
  • 0 Henk 'm!

  • ajouin
  • Registratie: Juli 2001
  • Laatst online: 08-09 13:57
delete me

[ Voor 199% gewijzigd door ajouin op 13-04-2010 22:25 ]


Acties:
  • 0 Henk 'm!

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 23:57

TheVMaster

Moderator WOS
Dirtbiter schreef op dinsdag 13 april 2010 @ 16:08:
[....]

Dat is dus het probleem, ik krijg de PING output niet onderdrukt wanneer ik start gebruik.

Er zijn manieren om dit met VBS te scripten, en om de batch file via een snelkoppeling geminimaliseerd te starten, maar ik wil het eigenlijk graag in 1 batchfile doen die ik gewoon in de opstarten map kan zetten.

Kan dit, en zo ja, hoe?
Eh....waarom zou je het uberhaupt niet compleet in VBS of PowerShell doen? De mogelijkheden zijn eindeloos :+ Enneh...DOS/Batchfiles is zoohww van de vorige eeuw O-) Enneh....is dat geen output zo belangrijk dan? als dat toch ff snel door het beeld schiet...is dat een probleem? :?

[ Voor 8% gewijzigd door TheVMaster op 14-04-2010 09:51 ]


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

shadowman12 schreef op dinsdag 13 april 2010 @ 20:19:
[...]
Ik vraag me af als je een net use commando afvoert en er is op dat moment geen netwerkverbinding of ie dan wacht op netwerk. Ik denk het namelijk niet, maar dat zou ik na moeten zoeken.
Nope, je krijgt gewoon de reguliere TCP time-out voor je kiezen.

Verder is batch evil.
VBS en PS kun je tenminste zo schrijven dat het geen lelijke zwarte venstertjes weergeeft en heeft 10x zoveel mogelijkheden op errrorhandling .

[ Voor 18% gewijzigd door alt-92 op 14-04-2010 17:55 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • Dirtbiter
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:25
De reden waarom ik het op deze manier wil doen, is omdat het gaat om het starten van BGInfo op een cliënt.

Wij gebruiken die cliënts echter niet als office computers, maar als projectmatige machines waar zo min mogelijk op mag staan, en waar de gebruiker zo min mogelijk mag.

Daarom wil ik ook het liefst geen zwarte vensters.

De reden dat ik geen VBS of PowerShell wil gebruiken is omdat we zo min mogelijk extra software op de cliënts willen hebben. Naast het feit dat ik in beide nog nooit wat gedaan heb...
Onze Project Engineers zijn geen systeembeheerders (ik dus ook niet). Computers zijn voor ons gereedschap, niet het onderwerp. Vandaar dat een zo simpel mogelijke oplossing gewenst is.

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Geen reden dus om dan VBS naast je neer te leggen. Aangezien dat gewoon de Natice script-taal is voor Windows systemen.

PowerShell & KIX heb je inderdaad extra spul voor nodig, maar VBS & BAT dus totaal niet.

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Dirtbiter schreef op vrijdag 16 april 2010 @ 15:28:

De reden dat ik geen VBS of PowerShell wil gebruiken is omdat we zo min mogelijk extra software op de cliënts willen hebben. Naast het feit dat ik in beide nog nooit wat gedaan heb...
Het feit dat je nog nooit wat gedaan ermee hebt blijkt al uit de opmerking dat je er iets voor zou moeten installeren ;)

De Windows Script Host staat al op je systeem. PS zul je wellicht al een keer via een update hebben gekregen misschien, maar denk ook even verder: op Server 2008 en hoger wordt PS als standaard steeds meer geaccepteerd.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • Dirtbiter
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:25
VBS heb ik ondertussen gezien dat dat standaard is, dat is dus zeker een optie.

Nu moet ik nog even uitzoeken hoe een en ander in zijn werk gaat.

Edit:
Uitgezocht, en voor de volledigheid, ik heb het zo gemaakt:
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'Path and Program
'escape " with another "
path = "\\SERVER\Install\BGInfo\"
program = "Bginfo.exe ""\\SERVER\Install\BGInfo\BGI\default.bgi"" /timer:0\"

set fso = CreateObject("Scripting.FileSystemObject")

'Try the network path 10 times
'If found, execute program, else: wait
for i = 1 to 10
  if fso.FolderExists(path) then
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run(path & program)
    
    exit for
  else
    WScript.Sleep 1000
  end if
next


Na het opstarten van de PC duurt het gemiddeld 5 seconden voordat het path beschikbaar komt, en werkt het als een zonnetje!

[ Voor 68% gewijzigd door Dirtbiter op 19-04-2010 09:48 . Reden: Oplossing toegevoegd ]

Pagina: 1