Problem mit einer Batchdatei

Mitglied: stevie72
Guten Abend zusammen!
Ich habe ein problem eine Batch ans laufen zu bekommen.

Folgende Problem Stellung:
Wir haben etwa 20 Rechner in der Bibliothek. Darauf läuft ein Programm zum suchen.
Auf einem Rechner läuft ein Programm (ich nenne es mal Programm_C.exe )
dieses Programm läuft z.b. von Laufwerk C (Programm_C.exe) und ein anderes mal auf einem anderen Rechner von D (Programm_D.exe) hängt vom Rechner ab.
Es soll soll beendet werden und via netzwerk up-gedated werden.

Dann beim Restart des Computers soll das neue Programm über die vorhandene autoexec batch gestartet werden..

Wichtig hierbei ist es soll berücksichtigt werden ob es auf c: oder d: installiert ist ... da es unterschiedliche versionen sind.

mein ansatz hierfür: sorry .. ich bin a.) rentner und b.) anfänger



hat jemand eine idee wie beide Konstrukte zusammen gefasst werden können?

Content-Key: 749680834

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

Ausgedruckt am: 27.07.2021 um 23:07 Uhr

Mitglied: Xerebus
Xerebus 19.06.2021 um 18:52:08 Uhr
Goto Top
Hab jetzt nicht ganz verstanden was du willst, aber ich glaube die lösung ist psexec.
Mitglied: stevie72
stevie72 19.06.2021 aktualisiert um 19:22:05 Uhr
Goto Top
Guten Abend!

ich versuche es mal zu erklären.
Wir haben in der Bücherrei unterschiedliche Computer. Alle am Netzwerk.
Also ich möchte den code zusammengefasst haben und über eine entscheidung die mir %c% oder %d% (Lauferwerk C oder D)
liefert dann jeweils eine folge routine ausführt. Damit möchte ich den doppelten Code einsparen. Der Code ist nur ein Auszug .. nicht die finale Version..

weil darin sind viele Programmteile Doppelt vorhanden ..

Wie im Code zu sehen ist

Was mir fehlt ist ein beispiel für eine Sinnvolle zusammenfassung dann kann ich den restlichen Code ergänzen
Mitglied: em-pie
em-pie 19.06.2021 aktualisiert um 19:54:35 Uhr
Goto Top
Moin,

Dann ermittle in einem vorgelagerten Block, ob dein Programm in C:\ oder in D:\ liegt. Danach schreibst du den Ofad in eine Variable u d arbeitest mit der Veriablen weiter:

Logisch gesprochen (Syntax nicht ganz korrekt):

Mitglied: stevie72
stevie72 19.06.2021 um 19:50:15 Uhr
Goto Top
Genau danach suchte ich
Herzlichen Dank!
Mitglied: stevie72
stevie72 20.06.2021 aktualisiert um 11:04:10 Uhr
Goto Top
Guten Morgen zusammen!

Ich habe den Code soweit lauffähig.

jetzt habe ich nur ein kleines Problem mit einem logfile.

Wenn noch kein logfile vorhanden ist -> erstellen von logFile. Funktioniert soweit.
Wenn ein logfile existiert soll es umbenannt werden in logfile_alt dann neues logfile erstellen.

Ziel ist es immer 2 logfiles zu haben. Ein neues aktuelles und eine version davor.

hier ist der part um den es geht..


kann man das so schreiben ? bei mir wir immer zusätzlich eine "0 datei erzeugt" .. deren Sinn erkenne ich nicht
Mitglied: em-pie
em-pie 20.06.2021 um 11:50:49 Uhr
Goto Top
Moin,

was du suchst, nennt sich Logrotation.

Als separates Script kannst du dir das auf github "stibizen":
https://gist.github.com/urin/3b68e8388cc34a688d13


Fernab wird dein Problem womöglich aber folgendes sein:
du nutzt in Zeile 2 %logFile%_alt
und in Zeile 3 %logFile_alt%

Zudem: was meinst du mit folgender Aussage?
bei mir wir immer zusätzlich eine "0 datei erzeugt"

Mitglied: stevie72
stevie72 20.06.2021 um 12:24:26 Uhr
Goto Top
Moin

es wird eine Datei mit namen 0 erzeugt die ist 23 Byte gross ..
bildschirmfoto 2021-06-20 um 12.23.57
Mitglied: em-pie
em-pie 20.06.2021 um 12:29:26 Uhr
Goto Top
Dann ist die Variable %logFile% leer.

Ohne de Code zu kennen, ist das schwierig.

Mach doch mal ein

Mitglied: stevie72
stevie72 20.06.2021 aktualisiert um 13:13:04 Uhr
Goto Top
Hallo em-pie
hier ist mein Code ..zum besseren verständnis


Mitglied: em-pie
em-pie 20.06.2021 um 13:12:53 Uhr
Goto Top
Moin,

an einigen Stellen fallen mir Fehler auf.

Du verwendest die goto-Marken falsch
Es kommt erst der Doppeltpunkt und dann der Bezeichner. Achte auf auch Groß- und Kleinschreibung

Zeile 12: Laufwerk X wird verbunden und du verbindest dich nur zu einem Server - da fehlt die ANgabe der Freigabe"
Zeile 14: "Laufwerk S ist verbunden"

Mache es so:

Weiter im Text:
Zeile 17 ist so unnütz wie Hämorriden ;-) face-wink
Zeile 19 ergibt auch keinen Sinn


Zeile 36 ff hast du überall Leerzeichen zwischen Pfad und Name der Logdatei enthalten

Zeile 38 und 41 läuft deine Prüfung ins leere, da es den Pfad zur LogFIle so nicht gibt (denk an das Leerzeichen).
Zeile 38+39 löscht du das alte Log (OK), benennst die logFile.txt in LogFile_alt.txt um (OK) UND versucht das nicht mehr vorhandene logFile.txt zu löschen (nicht OK, da idurch ren nicht mehr vorhanden)

Zeile 41+42: sind quatsch, denn da steht "Wenn die Datei nicht existiert, benenne sie um" und obendrein hast du statt eines Backslahes ein Slash genutzt - das Mag Windows nicht so...

Zeile 54: Du hast ein keiner STelle die Variable %logFile% definiert. Deswegen legt robocopy eine Datei names 0 an. Nutze zudem /UNILOG+ dann hängt er die Ergebnisse an.

Zeile 68 - 73: du willst dich beim error-Handling auf XCOPY beziehen, setzt aber ROBOCOPY ein -> https://ss64.com/nt/robocopy-exit.html

Zeile: 86: Nutze


Genereller Tip:
ICH lege mir zu Beginn eines Scriptes (egal ob Powershell/ Batch/ VBS/ ...) immer einen Block an, in dem ich alle relevanten Variablen edfiniere und mit Leben fülle. Dann muss ich bei änderungen nur in den Kopf gehen und nicht an 28 Stellen im Quellcode suchen.
Mitglied: stevie72
stevie72 20.06.2021 um 13:29:32 Uhr
Goto Top
Vielen Dank erstmal für deine Mühe !
Ich werde mir deine Änderrungsvorschläge mal Stück für Stück ansehen.
Dir noch einen schönen Tag.
Stefan
Mitglied: stevie72
stevie72 22.06.2021 aktualisiert um 09:02:14 Uhr
Goto Top
Guten Morgen zusammen,

eine frage habe ich dennoch:

warum funktioniert Beispiel A.) und B.) nicht ..?


Mitglied: em-pie
em-pie 22.06.2021 um 09:08:46 Uhr
Goto Top
Moin,

woran machst du aus, dass A) funktioniert und B) nicht?
Was gibt dir B) als Fehlermeldung zurück?

was sagt ein


Am Rande: deine IPs musst du nicht "maskieren".
Ich nehme an (und hoffe inständig), dass die IP deines Servers entweder mit 192.168., oder mit 10. oder mit 172.16. bis 172.16.31. beginnt.
Wenn dem so ist, bewegst du dich innerhalb des RFC1918, wie es mehrere Millionen Haushalte und Firmen INTERN nutzen. Man kann somit keine Rückschlüsse auf dich/ deine Daten ziehen.
Mitglied: stevie72
stevie72 22.06.2021 aktualisiert um 10:50:03 Uhr
Goto Top
Guten Morgen em-pie

Zunächst die IP . ich habe bewusst nicht die richtige IP angegeben ...
und ja sie beginnt mit 192

Ich habe ein kleines Skript daraus gemacht und eine pause>nul zur anzeige eingefügt.

Beispiel A.) funktioniert B.) nicht..

Ich denke das etwas mit dem Syntax falsch ist ..

Beispiel A.) gibst noch einen Systemfehler 85 zurück aber das Laufwerk wird korrekt gemounted B.) nicht

Der lokale Gerätename wird bereits verwendet.
Mitglied: em-pie
em-pie 22.06.2021 um 10:58:58 Uhr
Goto Top
Zitat von @stevie72:

Guten Morgen em-pie

Zunächst die IP . ich habe bewusst nicht die richtige IP angegeben ...
und ja sie beginnt mit 192
Dann ist es egal. AVM bestückt ja bei der AUslieferung die FritzBoxen auch mit 192.168.178.1/24. Ob die Fritte nun beim Oma Erna, dem Enkel Jonas oder dem Vater Ingo steht, ist jetzt auch nicht ersichtlich.

Der lokale Gerätename wird bereits verwendet.
Eindeutiger geht es nicht. Dein Laufwerk X existiert schon.
Führe nach A) mal ein net use (interaktiv) aus. Dann wirst du sehen, dass es dein X: schon gibt.
Heiß diskutierte Beiträge
question
Zentrale Lösung für Antivirus, Patchmanagement, Monitoring in einem?Andre82msVor 1 TagFrageSicherheits-Tools24 Kommentare

Hallo Zusammen, ich suche schon seit längerem eine gute Lösung, welche ein gut funktionierendes Patchmanagement, Anti-Virenscanner mit EDR sowie ein Monitoring in einem Dashboard beinhaltet ...

question
Signatur-Programm gesuchtArchanVor 1 TagFrageOutlook & Mail20 Kommentare

Hi zusammen, vorab als Info: Wir haben eine Mischung aus Office365 und 2016, sowie einen Exchange 2016 Server. Ich bin nun auf der Suche nach ...

question
Mitarbeiter ab gewisser Uhrzeit am arbeiten hindern gelöst passy951Vor 16 StundenFrageWindows Netzwerk19 Kommentare

Guten Morgen zusammen, ich wurde gestern von unseren Betriebsrat gefragt ob es möglich ist ab z.B. 20 Uhr die Mitarbeiter daran zu hindern zu arbeiten. ...

question
Mikrotik vs. Unify - Warum mögt Ihr Unify nicht? gelöst tagol.deVor 1 TagFragePeripheriegeräte10 Kommentare

Hallo immer wieder lese ich, das hier auf Administrator.de Mikrotik bevorzugt wird. Aktuell habe ich zuhause 2 AP von Unify + Controller auf einem Rasberry ...

question
Wie lange kann ein PC in der Domain ohne Kontakt zur Domain betrieben werden?DaxAtDS9Vor 16 StundenFrageNetzwerkmanagement16 Kommentare

Hallo, bis vor einer Woche habe ich einen SBS2011 Server inkl. AD etc. in Betrieb gehabt. Nun habe ich ihn abgeschaltet und nutze einer der ...

question
Domänencontroller von Windows Server 2016 auf Windows Server 2019 migrierenEstefaniaVor 9 StundenFrageWindows Server24 Kommentare

Hi. Kann mir ein Admin bei folgendem Problem weiterhelfen !? Wir haben insgesamt 5 Domänencontroller, die auf einem Windows Server 2016 laufen. Nun ist es ...

question
Home-Office Laptop kann DNS nicht auflösenLubosNovyVor 1 TagFrageWindows Netzwerk15 Kommentare

Hallo zusammen, Situation: Manche Kolleginnen arbeiten im Home-Office und sind über Sophos SSL Client verbunden. Die Notebooks sind von mir vorbereitet, in die Domänen aufgenommen ...

report
Positive Erfahrung mit VodafoneitebobVor 1 TagErfahrungsberichtFlatrates3 Kommentare

Hallo zusammen, vieles, was ich im Beitrag Erfahrungsbericht Vodafone - Die endlose Vertragsänderung und in Kommentaren lese, deckt sich mit meinen persönlichen Erfahrungen mit Vodafone. ...