noadmin
Goto Top

Batch netzwerkfähig / multiuserfähig machen?

Hallo zusammen,
ich habe mir mit Hilfe dieses Forums eine Batch erstellt (letzte Zeile auslesen, Nummer um eins erhöhen und wieder abspeichern) die inzwischen auch funktioniert. (Danke nochmal für die Hilfe und die Vorlagen!)
Diese Batch kann mannuell durch mehrere User (3) im Netzwerk gestartet werden. Da in der Batch eine Nummer erstellt wird die wieder in einer separaten Datei angehängt und gespeichert wird, könnte es also sein das zwei (oder mehr) gleichzeitig die Batch starten.
Gibt es irgendwelche Anweisungen die sicherheitshalber in die Batch reinmüssen damit im Netzwerk keine Abstürze, Fehlinterpretationen in diesem Fall entstehen?

Content-Key: 43763

Url: https://administrator.de/contentid/43763

Printed on: April 24, 2024 at 06:04 o'clock

Member: Escobar
Escobar Nov 06, 2006 at 11:42:27 (UTC)
Goto Top
ich weiss jezz nicht genau, wo da dann das problem liegen soll, aber wenn du den multiuserzufriff unterbinden willst, kannste auch beim starten der batch eine datei anlegen (inkrNumberLaeuft.txt) und beim beenden wieder loeschen. die nummer wird dann nur inkrementiert, wenn die datei beim starten nicht schon existiert hat. additiv evtl noch ne schleife einbauen - mit jeweils 1sec pause bei jedem durchlauf - die 5 mal probiert, die nummer zu erhoehen (nur dann wenn die textdatei nicht da ist.

Esco
Member: Biber
Biber Nov 06, 2006 at 18:24:18 (UTC)
Goto Top
Moin noadmin,

kann mich nur Esco's Datei-Semaphoren-Mimik anschließen.
Wenn das zu theoretisch war, dann poste mal Deinen bisherigen Schnipsel, dann bauen wir die drei Zeile hier im Forum dazu.

Gruß
Biber
Member: noadmin
noadmin Nov 07, 2006 at 07:01:27 (UTC)
Goto Top
Moin, Moin
die Idee habe ich zwar verstanden, würde aber mit der Umsetzung wahrscheinlich eine kleine Ewigkeit brauchen... deshalb Danke für das Angebot!
Die Frage war auch nur gestellt um von ein paar Leuten die entsprechende Erfahrungen haben die Meinung einzuholen ob es tatsächlich notwendig ist oder ob man sich das sparen kann. Was passiert denn (theoretisch) wenn zwei gleichzeitig die Batch starten?
Ich kann mit einer Fehlermeldung noch umgehen aber es gibt dann immer noch User auf DAU-Niveau...

Hier noch der Schnipsel:
:: Letzte Zeile in %Var% speichern
for /F "Tokens=*" %%i in (C:\testbat\angnr.txt) do Set Var=%%i
Echo Info: Letzte Angebotsnummer: %Var%
::Variable um Eins erhoehen
SET /a Var=Var+1
Echo Neue Angebotsnummer: %Var%
Echo %var%>>C:\testbat\angnr.txt
Member: Biber
Biber Nov 07, 2006 at 08:25:04 (UTC)
Goto Top
Moin noadmin,

skizzieren würde ich es so:

.....
:: Letzte Zeile in %Var% speichern
:TryAgain
If exist %temp%\Blocker.tmp (
      echo Jemand anderes ändert gerade...Moment...
      ping localhost >nul
      goto TryAgain
)
Echo Nu' aber ich!!>%temp%\Blocker.tmp  
for /F "Tokens=*" %%i in (C:\testbat\angnr.txt) do Set Var=%%i  
Echo Info: Letzte Angebotsnummer: %Var%
::Variable um Eins erhoehen
SET /a Var=Var+1
Echo Neue Angebotsnummer: %Var%
Echo %var%>>C:\testbat\angnr.txt
Del %temp%\Blocker.tmp

Gruß
Biber