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
GELÖST

Batch Skript

Frage Entwicklung Batch & Shell

Mitglied: cmdcrasher

cmdcrasher (Level 1) - Jetzt verbinden

09.03.2012, aktualisiert 12.03.2012, 2549 Aufrufe, 21 Kommentare

Probleme mit einem cmd Skript ! Ich hoffe es kann mir jemand eine kurze Hilfestellung diesbezüglich geben!

Hallo, ich habe bei meinem skript folgendes Problem! Ich möchte bei jedem Befehl der im meine skript ausgeführt wird eine ausgabe ob dieser erfolgreich war oder nicht, ist das möglich? Hier mein skript!

Ich komme momentan einfach nicht weiter!!!!!!!!!!!
01.
 
02.
echo.>> %TEMP%\liste.txt  
03.
echo xxxxxxx >> %TEMP%\liste.txt  
04.
hostname >> %TEMP%\liste.txt  
05.
 
06.
for /f "Tokens=*" %%a in ('date /t') do set day=%%a  
07.
for /f "Tokens=*" %%b in ('time /t') do set tim=%%b 
08.
 
09.
echo Heute ist der %day%, die Zeit ist %tim% Uhr. >> %TEMP%\liste.txt 
10.
 
11.
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Meine Software" /f >> %TEMP%\liste.txt 
12.
 
13.
regsvr32 /u /s %systemroot%\system32\meine.dll >> %TEMP%\liste.txt 
14.
if not %errorlevel% 1 goto fehler 
15.
echo befehl erfolgreich >> %TEMP%\liste.txt 
16.
:fehler 
17.
echo befehl nicht erfolgreich >> %TEMP%\liste.txt 
18.
 
19.
del /q /f %systemroot%\system32\meine.dll >> %TEMP%\liste.txt 
20.
if %errorlevel% 1 goto fehler 
21.
echo befehl erfolgreich >> %TEMP%\liste.txt 
22.
:fehler 
23.
echo befehl nicht erfolgreich >> %TEMP%\liste.txt 
24.
 
25.
rd /s /q c:\Ordner >> %TEMP%\liste.txt 
26.
 
27.
xcopy %temp%\liste.txt \\server\source\log 
28.
if %errorlevel% 1 goto fehler 
29.
echo befehl erfolgreich 
30.
:fehler 
31.
echo befehl nicht erfolgreich
Ich hoffe ich bekomme hier ein bisschen unterstützung, würde mich freuen .

Gruß cmdcrasher
Mitglied: Skyemugen
09.03.2012 um 17:24 Uhr
Aloha,

wir geben ja gerne Hilfestellung(en), in der Regel aber bevorzugt jenen, die unsere Formatierungshilfe nicht nur für ein lustiges, buntes Wort beim Erstellen betrachten, sondern auch anschauen, um dann Skripte in der passenden <code></code> Formatierung zu präsentieren.

greetz André
Bitte warten ..
Mitglied: bastla
09.03.2012 um 19:34 Uhr
Hallo cmdcrasher und willkommen im Forum!

Für ein bisschen Unterstützung muss ich Deinen Code ja nicht lesen - da sollte ein Hinweis auf das Thema "&&" bzw "||" genügen ...

Grüße
bastla

P.S.: Die von Skye erwähnte Formatierung lässt sich auch nachträglich noch erreichen ...
Bitte warten ..
Mitglied: cmdcrasher
12.03.2012 um 09:26 Uhr
Hallo und sorry das ich es nicht gleich richtig gemacht habe! Ich hoffe jetzt immer noch das mir jemand etwas Hilfestellung geben kann.

Danke .

Gruß cmdcrasher
Bitte warten ..
Mitglied: Skyemugen
12.03.2012 um 10:04 Uhr
Zitat von cmdcrasher:
Ich hoffe jetzt immer noch das mir jemand etwas Hilfestellung geben

Und bastlas Link war jetzt inwiefern keine genügende Hilfestellung?
Bitte warten ..
Mitglied: cmdcrasher
12.03.2012 um 10:24 Uhr
Weil ich cmd befehle zu genüge im internet finde, aber einfach vom verständnis her nicht weiter komme. Ich möchte bei jedem commando eine ausgabe in meine list.txt haben aber leider führt er das so wie oben nicht aus!
Bitte warten ..
Mitglied: bastla
12.03.2012 um 11:36 Uhr
Hallo cmdcrasher!

... und "&&" bzw "||" magst Du Dir nicht näher anschauen?

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
12.03.2012 um 11:57 Uhr
|| [...]	Befehl1 || Befehl2	Verwenden Sie dieses Zeichen, um den auf || folgenden Befehl nur dann auszuführen, wenn der Befehl vor || fehlschlägt. Cmd.exe führt zunächst den ersten Befehl aus. Der zweite Befehl wird nur dann ausgeführt, wenn der erste Befehl nicht erfolgreich ausgeführt wird (und ein Fehlercode größer Null zurückgegeben wird).
Wobei das beim DEL-Befehl nicht greifen wird, denn angenommen die Datei existiert nicht, dann gibt es einen errorlevel 0 und eine Fehlermeldung im cmd, die nur per 2>>%temp%\liste.txt in die Datei zu schreiben wäre, welchen errorlevel regsrv ausgibt ... keine Ahnung, da zumindest sollte
01.
(regsvr32 /u /s %systemroot%\system32\meine.dll>nul && echo RG Befehl erfolgreich || echo RG Befehl nicht erfolgreich)>>%temp%\liste.txt
seinen Dienst tun, wenn die Datei nicht exisiert, gibt es den errorlevel 3

... nebenbei bemerkt sind die gotos momentan auch überflüssig, denn if hat auch else

greetz André
Bitte warten ..
Mitglied: cmdcrasher
12.03.2012 um 16:15 Uhr
Hallo André,

vielen dank für die schnelle hilfe!! Das hat super funktioniert, ich habe es gerade mal getestet auch mit den anderen befehlen (rd;reg del;).
Klasse .

Jetzt müßte ich auch noch für die anderen befehle wie..

01.
del /q /f %systemroot%\system32\meine.dll >> %TEMP%\liste.txt  
02.
type %TEMP%\liste.txt >> \\serverpfad\log\gesamt.txt
eine lösung finden. Also den inhalt aus der list.txt auf dem server im netz ablegen (gesamt.txt), aber das geht so wie oben nicht.

Gruß cmdcrasher
Bitte warten ..
Mitglied: bastla
12.03.2012 um 19:15 Uhr
Hallo cmdcrasher!

Um den Erfolg beim Dateilöschen zu prüfen, kannst Du ja ein
(dir %systemroot%\system32\meine.dll >nul 2>nul && echo Nicht gelöscht || echo Gelöscht)>>%TEMP%\liste.txt
nachlegen ...

Grüße
bastla
Bitte warten ..
Mitglied: cmdcrasher
13.03.2012 um 09:28 Uhr
Hi bastla,

thanks a lot auch das hat super geklappt, freu mich! Ich bin fast am ziel. Wie bekomme ich jetzt noch den inhalt aus der list.txt am lokalen rechner in %temp% auf den server in einer freigabe im ordner z.b: \\servername\log? Wär super wenn das auch noch möglich wäre!

Vielen herzlichen dank euch !!

Servus cmdcrasher
Bitte warten ..
Mitglied: Skyemugen
13.03.2012 um 10:14 Uhr
...

was hindert dich jetzt daran, nicht direkt >>\\servername\Verzeichnis\liste.txt statt >>%temp%\liste.txt zu nutzen?

greetz André
Bitte warten ..
Mitglied: cmdcrasher
13.03.2012 um 10:55 Uhr
Hi bastla,

er bringt hier aber auch die ausgabe gelöscht, auch wenn es die datei nicht mehr gibt !?
Bitte warten ..
Mitglied: cmdcrasher
13.03.2012 um 11:13 Uhr
Hi André,

jetzt hab ich ein kleines verständnisproblem ! Ich versuch es noch mal zu erklären. Ich möchte gerne an jedem PC an dem das skript ausgeführt wird denn inhalt von list.txt auslesen lassen und in eine gesamt.txt auf dem server eintragen lassen. Das alles in einer text datei steht.

cmdcrasher
Bitte warten ..
Mitglied: Skyemugen
13.03.2012 um 11:23 Uhr
... gut, dann formuliere ich es anders:

was hindert dich jetzt daran, nicht direkt >>\\servername\Verzeichnis\liste.txt statt >>%temp%\liste.txt zu nutzen?
acht halt, das steht ja schon oben, na, wird wohl seinen Grund haben [du weißt, dass >> immer an die Datei etwas anhängt, ohne zu überschreiben?]

Ausgenommen alle PCs tun dies zur gleichen Zeit, dann schreibt da nur einer, sonst keiner, da die Datei dann bereits exklusiv geöffnet ist, weiß ja nicht, wie viele PCs das werden aber herzlichen Glückwunsch im Voraus an den Bandsalat

greetz André
Bitte warten ..
Mitglied: Skyemugen
13.03.2012 um 11:24 Uhr
... was logisch ist, denn wie soll er dir auf eine Datei machen, die nicht mehr existiert, ergo greift && nicht, sondern ||, da dir fehlschlägt.
Sonst kann man ja gleich mit if exist ... else arbeiten
Bitte warten ..
Mitglied: cmdcrasher
13.03.2012 um 11:33 Uhr
Ok also würde das so funktionieren?

(if exist %systemroot%\system32\meine.dll(del /q /f %systemroot%\system32\meine.dll && echo gelöscht) else (echo datei fehlt)) >> %TEMP%\liste.txt

Greetz
Bitte warten ..
Mitglied: Skyemugen
13.03.2012 um 11:43 Uhr
Ja, wenn du das fehlende Leerzeichen zwischen dll und (del hinzufügst, dann funktioniert das so.
Bitte warten ..
Mitglied: cmdcrasher
13.03.2012 um 11:53 Uhr
Also könnte ich sicherheitshalber auch für jeden PC eine extra txt anlegen lassen ! Könnte ich das bei jedem commando so machen immer >> \\servername\verzeichnis\%computername%.txt statt >> %TEMP%\liste.txt?
01.
(dir %systemroot%\system32\meine.dll >nul 2>nul && echo Nicht gelöscht || echo Gelöscht) >> \\servername\verzeichnis\%computername%.txt
Grüßle
Bitte warten ..
Mitglied: Skyemugen
13.03.2012 um 12:00 Uhr
Aloha,

ja, natürlich.

Frage: Wird das mehrmalig pro Rechner geschehen, oder einmalig, wenn mehrmalig, wie lange soll die Datei geführt werden, bzw. wäre es dann nicht auch sinnvoll, bei einem erneuten Durchlauf die alte Datei zu überschreiben (via echo\ >\\servername\verzeichnis\%computername%.txt nach deinem o.g. Skript), statt den Gesamtablauf jedes Mal als Salat anzuhängen?

greetz André
Bitte warten ..
Mitglied: cmdcrasher
13.03.2012 um 14:15 Uhr
Hi all,

also zusammenfassend funktioniert jetzt eigentlich alles, ausser ein paar schönheitsfehlerchen! Wenn ich jetzt das komplette skript ausführe (lokal am pc), dann fehlen auf dem server (%computername%.txt) manche ausgaben, die stattdessen in der cmd am pc lokal ausgegeben werden!
Vermutung!! Die befehle werden schneller ausgeführt als die daten auf den server geschrieben werden können. Könnte das so sein? Gibt es einen parameter mit dem man nach jedem commando eine verzögerung erzwingen kann?

sers
Bitte warten ..
Mitglied: cmdcrasher
14.03.2012 um 12:11 Uhr
Hallo,

so hab es jetzt so gelöst nach jedem command und geht auch! Ist zwar kein direkter wait command aber damit scheint das skript zeit zu haben alles schön gepflegt abzuarbeiten!

ping /n 6 localhost >nul

Möchte mich noch einmal bei euch bedanken für die schnelle und nette hilfe. Schöne woche noch und vielleicht schreibt man sich ja wieder einmal, werd hier jetzt öffters mal reinschauen.

Schönen Gruß

cmdcrasher
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Ähnliche Inhalte
Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Batch & Shell
gelöst Batch-Skript für Druckerzuweisung auf Terminalserver - Variablenproblem (3)

Frage von BirdyB zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

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

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...