Top-Themen

Aktuelle Themen (A bis Z)

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 Wenn jemand wirklich ganz furchtbar langweilig ist...Batch-Datei erklären?

Mitglied: CrazyCat

CrazyCat (Level 1) - Jetzt verbinden

13.02.2007, aktualisiert 22.02.2007, 5557 Aufrufe, 6 Kommentare

Für mich teilweise völlig unverständlich...

Hallo miteinander,

ehrlich - ich hab versucht, das zu durchschauen, aber ich werde bei aller Liebe nicht schlau daraus. Klar vielleicht, als absolut Beginner...

Ich weiss natürlich, dass Ihr alle weit besseres zu tun habt - da sie funktioniert, besteht auch kein wirklicher Bedarf für dieses Post, ausser meinem Ehrgeiz, es zu verstehen, nachdem ich Batch-Luft geschnuppert hab. Ich hab sogar Bibers Date-Time-Tutorial mal durchforstet, nach einer teilweisen Antwort...

Ich habe hier eine Batch, die von einem Unbekannten geschrieben wurde. Sie sichert das Log wohl am Anfang und nach Beendigung des Spieles (wird bei jedem Start neu geschrieben)

cd logs
copy nwlog.txt+nwclientlog1.txt nwlog_temp.txt
del nwlog.txt
ren nwlog_temp.txt nwlog.txt
cd ..

spiel.exe +connect server:ip

cd logs

if "%time:~0,1%" == "1" goto time2
if "%time:~0,1%" == "2" goto time2

rename nwclientLog1.txt log_%date:~6,4%-%date:~3,2%-%date:~0,2%_0%time:~1,1%-%time:~3,2%-%time:~6,2%.log
goto done

:time2
rename nwclientLog1.txt log_%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%.log

:done

copy nwclientlog1.sav nwclientlog1.txt
copy nwlog.sav nwlog.txt
cd ..

Das, was mir Kopfzerbrechen macht:

1. Die eigentliche Log-Datei ist nwclientlog1.txt. Er setzt aber eine zusätzliche nwlog.txt noch voraus, selbst erstellt - warum?

2. Warum zweimal der Verweis auf time2? Beide Zeilen führen uns zum gleichen rename, ohne dass 1 und 2 näher definiert wäre?

3. Ebenso zweimal rename, der fast gleiche Befehl, bis auf die 0 bei %_0%time....

Die Datei heisst aber, soweit ich das sehen kann, immer gleich, und wird auch immer erstellt, egal, wie wenig oder viel Inhalt sie tatsächlich enthält...

4. Es gibt überhaupt kein nwlog.sav und ebensowenig nwclientlog.sav - müsste man erstellen, doch wozu? Die werden, soweit ich das sehe, gar nicht erst angetastet?

Ich kann den Verfasser leider nicht mehr fragen. Darum meine Frage an Euch, wenn jemand Lust hat, das zu erklären. Falls nicht, natürlich auch überhaupt kein Problem

Lieben Gruss und eine schöne Arbeitswoche,

Cat

PS: Und nein, ich bin nicht _die_ CrazyCat, die hier offenbar einmal angemeldet war und wesentlich mehr von Batch versteht als ich
Mitglied: drobskind
13.02.2007 um 07:53 Uhr
cd logs --------------- wechsel ins verzeichnis logs
copy nwlog.txt+nwclientlog1.txt
nwlog_temp.txt --------- kopiert den inhalt von nwlog und nwclientlog in nwlog_temp
del nwlog.txt ---------löscht nwlog UM
ren nwlog_temp.txt nwlog.txt ------- nwlog_temp den namen nwlog zu geben
cd ..--------- verlässt das verzeichnis logs wieder

spiel.exe +connect server:ip ----- startet das spiel mit dem übergabeparameter (IP-adresse vom server)

cd logs ---- wechselt wieder in verzeichnis logs

if "%time:~0,1%" == "1" --------------- ändert einige zeitangaben.... (kp was genau) warscheinlich logeinträge erstellung!
goto time2
if "%time:~0,1%" == "2"
goto time2

rename nwclientLog1.txt
log_%date:~6,4%-%date:~3,2%-%date:~0,2%_0%time:~1,1%-%time:~3,2%-%time:~6,2%.log
goto done

:time2
rename nwclientLog1.txt
log_%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%.log

:done

copy nwclientlog1.sav nwclientlog1.txt----------- sichert anscheinend die savegames im log
copy nwlog.sav nwlog.txt
cd .. --- verlässt wieder das verzeichnis


so bei ein paar stellen kann ich dir helfen!!

mfg
drobskind
Bitte warten ..
Mitglied: bastla
13.02.2007 um 08:07 Uhr
Hallo CrazyCat!

zu 1)
Ziel der "copy/del/ren"-Aktion ist es, ein fortlaufendes Log in "nwlog.txt" zu erzeugen, indem an eine bereits vorhandene "nwlog.txt" die "nwclientlog1.txt" angefügt wird - ließe sich einfacher realisieren mit
01.
"type nwclientlog1.txt>>nwlog.txt"
zu 2 und 3)
Hier ist das Ziel die Formatierung der Uhrzeit im Dateinamen der umzubenennenden Log-Datei, da %time% keine führende 0 ausgibt - anhand der ersten Stelle der Uhrzeit soll entschieden werden, ob eine "0" im Dateinamen vorangestellt werden soll (die hast Du bei den "ren"-Zeilen ja schon bemerkt). Dazu wird mit den beiden "if" abgefragt, ob die Uhrzeit mit "1" oder "2" beginnt und in diesem Fall keine "0" vorangestellt (was dann aber bei Zeiten zwischen 1:00:00 und 2:59:59 auch nicht passieren würde). Um die Vorgangsweise hier richtig zu stellen, müsstest Du etwas in der Art machen:
01.
for /f "tokens=1-3 delims=:" %%i in ('echo %time%') do (set St=%%i) & (set Min=%%j) & (set Sek=%%k)
02.
if %St% lss 10 set "St=0%St%"
03.
set Sek=%Sek:~0,2%
Danach könntest Du die einzelnen Variablen %St%, %Min% und %Sek% verwenden.

zu 4)
Nach dem "Ablegen" der aktuellen "nwclientlog1.txt" soll offensichtlich eine (von Hand) gespeicherte Version davon ("nwclientlog1.sav") zur aktuellen Version gemacht werden.
Die letzte Zeile schließlich führt die Aktionen am Anfang ad absurdum, da die dort erstellte Log-Sammeldatei "nwlog.txt" ebenfalls mit einer gespeicherten Version ("nwlog.sav") überschrieben würde.

Ob Du diese beiden Zeilen überhaupt brauchst, kann ich nicht beurteilen - solange Du aber die jeweiligen ".sav"-Dateien nicht zur Verfügung hast, erntest Du damit nur Fehlermeldungen der Art "Das System kann die angegebene Datei nicht finden.".

Grüße
bastla

[Edit] @drobskind - Sorry, hatte Dich nicht bemerkt ... [/Edit]
Bitte warten ..
Mitglied: Biber
13.02.2007 um 09:46 Uhr
Moin CraziestCat,

...und noch eine weitere Anmerkung/Erläuterung:

Unnötige Fehlerquelle in dem Schnipsel oben ist die Mimik mit "cd logs" am Anfang und "cd.." am Ende.

Das funktioniert ja erstens nur, wenn man/frau den Batch auf dem richtigen Laufwerk und zweitens sogar im richtigen Unterverzeichnis (eine Ebene über "..\logs") aufruft.

Besser:
- am Anfang des Batches altes Verzeichnis sichern und in neues Laufwerk/Verzeichnis wechseln mit "PushD d:\subdir\whatever\logs" und
- am Ende des Batches den alten Zustand (Laufwerk/Verzeichnis) wieder herstellen mit "PopD".

Gruss
Biber
Bitte warten ..
Mitglied: CrazyCat
13.02.2007 um 11:26 Uhr
Guten Morgen Ihr Drei,


@drobskind: Das war wirklich Schritt für Schritt-Erklärung, klasse, danke für die Mühe

@ bastla: Mein erster Schritt nach Deiner Erklärung ist wohl, die .savs-Zeilen rauszunehmen und das auch mit dem type-Befehl zu probieren

For-Befehle... die ganzen Sonderzeichen machen mir Angst ;). Da werde ich mich wohl wirklich nochmal genauer einlesen müssen.

Danke auch Dir, dass Du auch Licht in die Time- und rename-Zeilen gebracht hast!

@Biber: Ja, das ist richtig - die bat liegt im richtigen Verzeichnis. Hm... pushd und popd wäre natürlich weitaus proffessioneller, als "cd logs" und "cd..". Oder eine Variable a la "Sicher=C:\logs" und dann beim Rename herumzumurksen. Spart Zeilen - anhand Deiner Beiträge - bist Du evtl. ein Sparfuchs, kein Biber? *scherz*

Nochmal ganz lieben Dank Euch allen. Ihr habt mir sehr geholfen.
Jetzt kann ich etwas sicherer versuchen, das Ganze gründlich zu vermurksen (was ich schon geschafft hab)

Ich versuche nämlich, die Sekunden wegzulassen, und ihm dafür mit mit

if exist log%date%.log >> log%date:~6,4%-...

zu veranlassen, Logs vom gleichen Tag aneinanderzuhängen.
Klappt noch nicht, aber ich verstehe jetzt wenigstens besser, was der Urheber der Batch da fabriziert hat
Den Rest schaff ich auch noch...

Merci beaucoup!

Lieben Gruss,

Cat
Bitte warten ..
Mitglied: CrazyCat
22.02.2007 um 21:39 Uhr
Ich setze den Beitrag mal auf "gelöst" - nur bin ich leider zu dumm, um Sternchen zu verteilen, tut mir leid. (Sorry, das ich das erst so spät mache - ich hab erst heute einen Kommentar von Biber dazu gefunden, das man das machen kann/sollte).

Mir jedenfalls hat Eure Hilfe grossartig geholfen. Nun, ich hab das alte Batch-File ein "bisserl" umgearbeitet. Ich würde jetzt wohl nur Spam produzieren, würde ich das posten, aber vielleicht ist ja irgendeiner da draussen, der so eine Batch sucht und für den meine Lösung ein wenig hilfreich wäre. Dann schreibt mich per Email an, ok?

Lieben Gruss,

Cat
Bitte warten ..
Mitglied: Biber
22.02.2007 um 22:11 Uhr
Moin KratziKatzi,

nein, Du bist nicht zu dumm, Sternchen zu verteilen - diese Funktion ist gerade bei unser allem WebMaster scholl "in Überarbeitung".
[Für Nicht-ITler: deutsche Übersetzung dieses Fach-Terminus ist "in Vergessenheit geraten", "den Weg alles Irdischen gegangen", " aus Kosten-Nutzen-Erwägungen neu priorisiert worden"].

Mit anderen Worten - diese Funktion ist Vergangenheit und die meisten vermissen sie auch nicht soooo sehr.
Aber stellvertretend für die anderen Poster bedanke ich mich für den guten Willen und freue mich über die virtuellen Sterntaler.

Wenn Du magst (Platz genug ist hier), dann setz doch Deinen final batch noch in Deinen letzten Kommentar rein.
Editieren kannst Du auch, wenn der Beitrag geschlossen ist.

Was ich jetzt nämlich gleich tun werde.

Schönes Wochenende und bis zum nächsten Batch

Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Batch & Shell
Batch-Datei erstellen
gelöst Frage von tocksickBatch & Shell2 Kommentare

Hallo liebe Gemeinde! Ich bin dabei eine Batch-Datei zu schreiben welche folgendes tun soll: Die Batch soll alle auf ...

Batch & Shell
Batch Datei Kopieren
gelöst Frage von FragerBatch & Shell17 Kommentare

Hallo Zusammen, ich bekomme es nicht hin ich muss aus einem Ordner (liegt auf einem Server) eine von vielen ...

Batch & Shell
Batch Datei beenden
gelöst Frage von FisiFlo97Batch & Shell12 Kommentare

Hey Leute, Ich habe ne Frage. Und zwar habe ich ein Batch File erstellt was die Mausklicks switched. Sprich, ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 3 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk17 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

LAN, WAN, Wireless
LAN Kabel plötzlich nur noch 100-10 mbps statt 1000
Frage von ScravysLAN, WAN, Wireless13 Kommentare

Guten Tag, ich habe ein Problem mit meinem Netzwerk und zwar habe ich mir ein 20m starres verlegekabel cat.7 ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...