Gå til innhold

hjelp med BATCH scripting (.bat)


Anbefalte innlegg

Skrevet

heisann.. :) sitter å frisker opp litt på batch kunnskapene.. :)

har et script som skal utføre en rekke nettverks-relaterte handlinger.

F.eks 10 maskiner skal pinges. hvis maskin nummer 5 i lista ikke er online, vil den ikke gå videre til 6.. den bare stopper der.... :| noen som vet råd om hvordan jeg kan få den til å automatiskt gå videre? eller bare utføre alt samtidig?

Videoannonse
Annonse
Skrevet

Jeg har ikke det problemet...hos meg fortsetter den bare i batch jobben.

 

@echo off
call ping 192.168.0.17 -n 1 -w 1000
call ping 192.168.0.18 -n 1 -w 1000
call ping 192.168.0.19 -n 1 -w 1000
call ping 192.168.0.20 -n 1 -w 1000
call ping 192.168.0.27 -n 1 -w 1000

Skrevet

heh, dette skriptet er laget kun til testing og vil utføres på eget nettverk.. ikke tro jeg skal bruke det til ondskap :)

 

call b	\\pc100	-t 0 -f -x -x -l 0 -d Shutdown
call b	\\pc101	-t 0 -f -x -x -l 0 -d Shutdown
call b	\\pc102	-t 0 -f -x -x -l 0 -d Shutdown

 

osv... problemet er at den bruker lang tid på prøve på hver maskin.. jeg vil at skriptet skal kjøre alle samtidig. noen ide'er?

Skrevet
heh, dette skriptet er laget kun til testing og vil utføres på eget nettverk.. ikke tro jeg skal bruke det til ondskap :)

 

call b	\\pc100	-t 0 -f -x -x -l 0 -d Shutdown
call b	\\pc101	-t 0 -f -x -x -l 0 -d Shutdown
call b	\\pc102	-t 0 -f -x -x -l 0 -d Shutdown

 

osv... problemet er at den bruker lang tid på prøve på hver maskin.. jeg vil at skriptet skal kjøre alle samtidig. noen ide'er?

vet ikke om jeg hjelper deg med dette, ser ikke helt nytten med det, forklar nytten, og jeg skal hjelpe deg...

 

kun for testing er ikke nyttig...

Skrevet

Lag en thread for hver test, men det innebærer programmering.

 

C:

PROCESS_INFORMATION *m_procs;
unsigned int m_proc_count;
int main(int argc, char **argv)
{
 unsigned int x;
 m_procs = (PROCESS_INFORMATION*)malloc(sizeof(PROCESS_INFORMATION) * (argc - 1));
 // Første parameter (0) er modulnavn
 for(x=1;x<argc;x++)
 {
   
   CreateProcess(argv[x], NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, NULL, &m_procs[x]);
 }

}

...eller noe.

skrev det i farta, så vet ikke om det funker, men CreateProcess er ihvertfall asynkron (så står det skrevet)

Skrevet

hvis du må holde deg til bacth koding kan du bruke start

start starter en bat fil som en ny thread

 

fks.

start (bat filen som pinger maskin 1)

start (bat filen som pinger maskin 2)

start (bat filen som pinger maskin 3)

osv....

det blir litt rotete men jeg tror ikke det finnes en annen måte siden :whistle:

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...