Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 02.11.2011 um 18:57:32 Uhr
Verschoben von "ööhmmm ...Windows??" nach "Batch & Shell"
GELÖST

If befehle in einer Batch die andere Batch Dateien kontrollieren soll!

Frage Entwicklung Batch & Shell

Mitglied: Simsa84

Simsa84 (Level 1) - Jetzt verbinden

02.11.2011, aktualisiert 18:57 Uhr, 3288 Aufrufe, 9 Kommentare

Brauch mal wieder Hilfe

Hallo,

Ich habe drei Batch Dateien. 2 werden in der ersten mit aufgerufen. Es geht um installation von Programmen und Drucker wechsel zweier Server.

Also die Batch Dateien funktionieren soweit und Logs werden im jeweiligen Ordner auch erstellt.
Jetzt möchte ich aber nicht das jedesmal wenn der User sich anmeldet das er diese installationen vornimmt. Ausser die Netzlaufwerke.

Das erreiche ich ja wenn ich mit einem If Satz abfrage ob jeweilige Logs vorhanden sind. Und wenn Logs vorhanden sind wird er die Installationen und Druckserver wechsel nicht durchführen außer die Logs sind weg dann Installiert und verschiiebt er wieder!

Habe hier schon etwas geschrieben und möchte das Ihr mir sagen könnt ob es soweit gut aussieht oder was man anders machen kann. Bin noch ein neuling auf dem Gebiet Scripting und Ich finde nichts wirklich helfendes im Netz.

Habe es an einem Testsystem probiert klappt aber noch nicht ganz. Freue mich wenn jemand was darüber weiß!

Also die eigentliche Bat sieht dann bei mir so aus:

01.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
02.
@Echo on 
03.
Cls 
04.
 
05.
REM *****Echo. 
06.
REM *****Echo Guten Tag %Username% 
07.
REM *****Echo Ihr Computer heisst %Computername% 
08.
REM *****Echo Sie melden sich am %Logonserver% an 
09.
REM *****Echo Ihre Domäne heisst %UserDomain% 
10.
 
11.
REM *****Echo Einen Moment bitte, Ihre Netzlaufwerke werden jetzt verbunden 
12.
 
13.
pushd \\Server\Ordner 
14.
 
15.
logonSkript.vbs 
16.
 
17.
If exist \\Server\Ordner\Printserver.log 
18.
 goto Vorhanden 
19.
 
20.
:Vorhanden 
21.
@echo off ist Vorhanden 
22.
goto end 
23.
 
24.
If not exist \\Server\Ordner\Printserver.log 
25.
  goto Error 
26.
 
27.
:Error 
28.
@echo off Error 
29.
  goto \\Bat1 
30.
 
31.
If exist \\Server\Ordner\Apfel.log 
32.
  goto Vorhanden 
33.
 
34.
:Vorhanden 
35.
@echo off ist Vorhanden 
36.
  goto end 
37.
 
38.
If not exist \\Server\Ordner\Apfel.log 
39.
  goto Error 
40.
 
41.
:Error 
42.
@echo off Error 
43.
  goto \\Bat2 
44.
 
45.
pushd \\Server\Printserver 
46.
 
47.
call Printserver.bat 
48.
 
49.
pushd \\Server\Apfel 
50.
 
51.
call Apfel.bat 
52.
 
53.
 
54.
 
55.
popd 
56.
 
57.
End 
58.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bedanke mich im voraus schon mal für eure Antworten!!!!!!!!! ^^

Euer Simsa
Mitglied: Skyemugen
02.11.2011 um 13:35 Uhr
Aloha,

bevor wir hier die Augenkrise bekommen, möchte ich dich doch bitten, unsere <code></code>-Formatierung einzusetzen (geht auch nachträglich beim Bearbeiten) ...

Ebenso möchte ich dich darauf hinweisen, dass solche Anordnungen wie

If exist \\Server\Ordner\Printserver.log
goto Vorhanden


a) fehlerhaft sind und
b) if not exist erst gar nicht greifen würde, da ohne sinnvolles if exist ... (tu dies tu das) else (tu das oder dies) dann :Vorhanden direkt danach angesprochen wird ...

Mehr ins Detail gehe ich jetzt nicht (und schau' ich mir auch nicht an), solange alles im Plaintext vorhanden ist.

greetz André
P.S.: In deinem Satz
Bedanke mich im voraus schonmal für eure Beiträge!!!!!!!!!
stecken zwei Fehler ... (nein, ich spreche nicht von Rechtschreibung und/oder Grammatik)
Bitte warten ..
Mitglied: 60730
02.11.2011 um 13:43 Uhr
moinsen,

@echo off ist Vorhanden

ist ja mal ein ganz neuer Ansatz...
André meinte wirklich code tags - nicht code plain...

Und wenn du dann bei edit ieren bist - wo ist nochmal das Problem versteckt?

Ich habe drei Batch Dateien. 2 davon laufen in einer.

Bevor ich ganz weglaufe o der mein feuchtes Brötchen zwischen den Ohren ausläuft...
Wo du wolle?

Gruß
Bitte warten ..
Mitglied: Simsa84
02.11.2011 um 13:44 Uhr
So hoffe es ist jetzt genehm der Herr xD
Bitte warten ..
Mitglied: Simsa84
02.11.2011 um 13:50 Uhr
Das sind halt Dinge die ich gefunden habe wie gesagt kenne mich noch nicht so gut aus aber Ich merke schon das ihr sehr Hilfsbereit seid.

Ich werde versuchen mich zu bessern!!!
Bitte warten ..
Mitglied: Skyemugen
02.11.2011 um 14:18 Uhr
Zitat von Simsa84:
Das sind halt Dinge die ich gefunden habe wie gesagt kenne mich noch nicht so gut aus aber Ich merke schon das ihr sehr Hilfsbereit seid.
Brauchst du nix Internet, guckst du Hilfe von CMD

if /? sollte dir schon einmal Hinweise darauf geben, warum deine goto-Anordnungen fehlerhaft sind und auch teilweise eingekürzt werden können (z.B. if exist ... (echo Existiert bereits. && pause && goto :eof) else (call ...) ... Sprungmarken sollten, nebenbei bemerkt, eindeutig und daher nicht mehrfach vorhanden sein.
Ich werde versuchen mich zu bessern!!!
Mir genügt es schon, wenn du die CMD-Hilfe bemühst, learning-by-doing (gerne auch mit konkreten Nachfrage, wenn es hakt) ausübst und deine Ausrufezeichen sparsam verwendest.

Was genau soll goto \\Bat1 eigentlich bewirken? Du versuchst hier per Sprungmarkensprung ein Verzeichnis aufzurufen (?)

greetz André
Bitte warten ..
Mitglied: Simsa84
03.11.2011 um 06:54 Uhr
Habe es gemacht und denke das mir diese Zeilen Helfen werden....

01.
If not exist %Temp%\Printserver.log goto Call 
02.
  goto End 
03.
 
04.
:Call 
05.
call Print.bat 
06.
goto End 
07.
 
08.
:End 
09.
echo So könnts klappen ^^ 
10.
 
Habe es getestet und es hat funktioniert und wenn ich es so Handhabe kann Ich mir den Else Befehl sparen.
Bitte warten ..
Mitglied: Skyemugen
03.11.2011 um 08:33 Uhr
Aloha ...

hm ...

Wozu denn für einmal call eine Sprungmarke aufrufen und dazu noch eine (überflüssige) Sprungmarke für's Ende, lässt sich doch alles viel schöner handhaben

greetz André
Bitte warten ..
Mitglied: Simsa84
03.11.2011 um 10:37 Uhr
Ja wie gesagt bin da auf dem gebiet noch neu aber es geht und Ich bin Happy.

Der call ist halt dafür das wenn die Log nich da is, das er die Batch ausführt und wenn das Log da ist, er einfach gar nichts macht und direkt beendet.
Will ja nicht jedesmal beim User Login das Fenster aufhaben auch wenn der User davon nichts mitbekommt.

Falls dies auch kürzer geht und hübscher Ok aber so gehts auch!! ^^ Trotzdem Danke
Bitte warten ..
Mitglied: Skyemugen
03.11.2011 um 11:29 Uhr
... so kann man das nicht stehen lassen ^__^
01.
@If not exist %Temp%\Printserver.log @call Print.bat
fertig aus, mehr muss da doch gar nicht ... if exist dann macht er eben nichts und die batch macht Feierabend, if not exist dann führt er es eben aus und macht auch automatisch Feierabend ...

und beim Testen haut man meist sowieso ein goto :eof als letzte Zeile, was bei Doppelklick oder Taskplanerausführung natürlich hier überflüssig wird

greetz André
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Batch vergleich Dateien if else (2)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...