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

Trennzeile für Logdateien in Batch automatisieren

Frage Entwicklung Batch & Shell

Mitglied: pbelcl

pbelcl (Level 1) - Jetzt verbinden

04.01.2012, aktualisiert 18.10.2012, 2790 Aufrufe, 10 Kommentare

Ich habe ein Batch welches mit Trennlinien in Logdateien macht.

Ich habe eine Batchdatei die Trennzeilen in Logdateien für mich schreibt.
Dazu übergebe ich dem Batch als %1 den Namen des Logfiles und als Parameter %2 eine Zahl (60, 70 oder 80)

01.
@echo off 
02.
 
03.
if %1!==! goto end 
04.
if %2!==! echo  -------------------------------------------------->>%1&goto end 
05.
if %2==60 echo  ------------------------------------------------------------>>%1&goto end 
06.
if %2==70 echo  ---------------------------------------------------------------------->>%1&goto end 
07.
if %2==80 echo  -------------------------------------------------------------------------------->>%1&goto end 
08.
if not %2!==! echo  ---------------------------------------------------------------------------------------------------->>%1&goto end 
09.
goto end 
10.
 
11.
:end
Nun wär es nett wenn ich das Ganze etwas eleganter machen könnte.
Zum Beispiel dass dieses Batch eine beliebige Anzahl von "-" an die Datei "%1" übergibt.

Leider komm ich mit diesem Schleifenfunktionen noch nicht so ganz klar ;-(
Hat jemand einen Tipp für mich?
Mitglied: bastla
04.01.2012 um 18:00 Uhr
Hallo pbelcl! (Von Begrüßungen hältst Du offensichtlich weiterhin nix ... )

Wenn Du eine Variable mit der nötigen Anzahl an Zeichen erzeugst, kannst Du die gewünschte Anzahl danach unter Verwendung eines Teilstrings ausgeben, also etwa:
01.
@echo off & setlocal 
02.
if %1!==! goto end 
03.
if %2!==! echo  -------------------------------------------------->>%1& goto end 
04.
set "Trenn=----------------------------------------------------------------------------------------------------" 
05.
call echo %%Trenn:~,%2%%>>%1 
06.
:end
Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
05.01.2012 um 18:55 Uhr
Habs ausprobiert, funktioniert super!!

Zitat von bastla:
set "Trenn=----------------------------------------------------------------------------------------------------"

Und die maximal mögliche Zeichenzahl ergibt sich aus der Anzahl der Zeichen in "trenn", soweit richtig?

Danke und liebe Grüße
Paul
Bitte warten ..
Mitglied: bastla
05.01.2012 um 19:21 Uhr
Hallo pbelcl!
Und die maximal mögliche Zeichenzahl ergibt sich aus der Anzahl der Zeichen in "trenn", soweit richtig?
Ja; alternativ ließe sich die Trennzeile auch "maßgeschneidert" mit
01.
for /L %%i in (1,1,%2) do set /p=-<nul>>%1 
02.
>>%1 echo\
erzeugen ...

Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
06.01.2012 um 12:23 Uhr
Hi,

Danke für diese Version, gefällt mir besser

Ich mag dich nicht nerven, aber würde es gern zumindest ansatzweise verstehen :

01.
for /L %%i in (1,1,%2) do set /p=-<nul>>%1
Wozu ist das "<nul" eigentlich da?
Der Code macht bei mit im Test immer ein Leerzeichen nach einem Bindestrich !?
liegt das vielleicht daran?

01.
 >>%1 echo\
Ist für ein CR-LF am Ende richtig??
Bitte warten ..
Mitglied: bastla
06.01.2012, aktualisiert 18.10.2012
Hallo pbelcl!
Wozu ist das "<nul" eigentlich da?
Schau Dir mal dieses Tutorial an ...
Da in der Schleife die Bindstriche ohne Zeilenschaltung (und ganz ohne Leerzeichen - mit der eben von Dir nochmals geposteten Codezeile getestet) geschrieben werden, wird tatsächlich am Ende noch eine Zeilenschaltung (mit "echo\" erzeugt) benötigt ...

Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
06.01.2012 um 15:55 Uhr
Super, danke für den Link.
Da werd ich gleich reinschauen!!

Das mit den Leerzeichen werd ich mir nochmal ansehen, denn es passiert nur manchmal, sehr seltsam.
Ist mir aber egal, denn eine Trennzeile sieht auch mit Leerzeichen ganz nett aus

Danke nochmal für deine Hilfe!
Bitte warten ..
Mitglied: pbelcl
09.01.2012, aktualisiert 18.10.2012
Zitat von bastla:
Schau Dir mal dieses Tutorial an ...
Hab mir das Tutorial mal genau durchgelesen.
Nun weiß ich auch wieso der Code:
01.
for /L %%i in (1,1,%2) do set/p=-<nul>>%1  
02.
>>%1 echo\
Immer nach jedem "-" ein Leerzeichen macht. Im Tutorial steht dass soetwas in Schaltjahren angeblich passiert!
Wenn das kein Scherz ist, dann ist die Ursache bereits lokalisiert.

Drängt sich nur die Frage auf, WAS diese (Fehl)Funktion mit einem Schaltjahr zu tun hat ....
Irgendeine Ahnung ??
Bitte warten ..
Mitglied: bastla
09.01.2012, aktualisiert 01.05.2014
Hallo pbelcl!

Tun wir mal so, als wäre die Frage
WAS diese (Fehl)Funktion mit einem Schaltjahr zu tun hat ....
ernst gemeint:

Da im Schnitt weniger als 25 % aller Jahre Schaltjahre sind, wollte Ren damit nur sagen: "Kommt nicht sehr oft vor" ...

Eine Begründung, warum es die genannte Fehlfunktion überhaupt gibt, habe ich allerdings nicht anzubieten.

Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
09.01.2012 um 17:42 Uhr
Alles klar, dann werd ich bis 2013 warten und inzwischen den Code aus deinem ersten Posting verwenden
Bitte warten ..
Mitglied: Biber
09.01.2012 um 18:29 Uhr
....und weil sich doch jeder montags über gute Nachrichten freut....
Zitat von pbelcl:
Alles klar, dann werd ich bis 2013 warten und inzwischen den Code aus deinem ersten Posting verwenden
Laut dem Kalender der Maya haben wir diese merkwürdigen Schaltjahre erstmal hinter uns gebracht.
Mit irgendwelchem Unbill deswegen brauchen wir auf Sicht nicht mehr rechnen.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
Dateitypen aus Archiven löschen via Batch! (5)

Frage von Nightowl71 zum Thema Batch & Shell ...

Datenbanken
MSSQL Management Studio Generiere Skript automatisieren (2)

Frage von lordzwieback zum Thema Datenbanken ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...