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, 2772 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

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

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...