pedant
Goto Top

Hab da mal was programmiert. (CMD-Ergänzung)

Hallo Liebe Kollegen,

hier mal etwas "Eigenwerbung" (Freeware)...

In letzter Zeit habe ich ein Tool, dass ich für mich schrieb, soweit weiterentwickelt, dass ich denke es könnte Euch auch interessieren.
Es handelt sich um eine exe für die Kommandozeile, die Schwächen und Lücken der Boardmittel ausgleichen soll, um Skripte schöner oder komplexer schreiben zu können oder leichter an Informationen zu gelangen.

Der Schwerpunkt liegt bei Datumsberechnungen -umformatierungen und -ausgaben.
Daher stammt der Name Pedate (Pedants Date and Time Enhancer)
Hinzu kam ein einfacher Taschenrechner mit zahlreichen Operatoren,
eine kleine Hardwareinventur,
eine vollständige Ausgabe der Windowsversion,
die Möglichkeit externe Befehle auszuwerten,
Programme versteckt (fensterlos) zu starten,
Feiertage vom Oster- oder Adventsdatum abzuleiten
und einiges mehr.

Hauptfunktionsmerkmale

  • eine einzelne, portable exe-Datei, die Deutsch und Englisch unterstützt
  • beliebig formatierte Datum/Zeit-Ausgabe
  • aktuelles Datum/Zeit oder gemäß Eingabe
  • Erkennung von "beliebig" formatierten Datum/Zeit-Eingaben
  • Datum/Zeit-Ein- und -Ausgabe in "beliebigen" Sprachen
  • Datum/Zeit-Verschiebungen und Berechnungen
  • Berechnung des Osterdatums (West und Ost) und des Adventdatums
  • Start externer Programme mit optionaler Auswerten der Rückgabe
  • Taschenrechner (Zeitspannen, Wurzeln, Potenzen, Winkelfunktionen, Modulo, Zahlensysteme u.a.)
  • diverse Zeichenfolgeoperationen
  • Fallunterscheidungen (If-Abfragen)
  • Verzweigungen und Schleifen per goto-Anweisungen
  • frei zuzuordnende Variablen (Memoryfunktion)
  • Parameter von der Konsole und/oder aus Skriptdatei(en) einlesen
  • Inhalte einer Textdatei einlesen
  • Ausgabe in der Konsole und/oder in eine Textdatei
  • Integration in Batchdateien
  • detaillierte Versionsinformationsausgabe zur momentanen Windows-Version
  • detaillierte Versionsinformationsausgabe der installierten .Net-Framework-Versionen
  • Ausgabe der belegten und verfügbaren Speicherplatzgrößen der Festplatten
  • Übersicht der wesentlichen Hardware-Komponenten
  • ausführliche, interne Hilfefunktion

Wer neugierig geworden ist klicke hier:
Infos und Download
http://www.pedant.de/html/tools_pedate.php
(Download am Ende der Seite)

Da ich diesen Beitrag als Tipp deklariert habe, möchte ich auch einen Tipp aussprechen:
Schaut Euch das Tool mal an.
Für Risiken und Nebenwirkungen übernehme ich allerdings keine Verantwortung.

Fragen zur Bedienung (Syntax), Tipps für bestimmt Aufgabenstellungen und Featurerequests nehme ich gerne entgegen.

Gruß Frank

EDIT: Beitrag angepasst an aktuelle Version

Content-ID: 354251

Url: https://administrator.de/knowledge/hab-da-mal-was-programmiert-cmd-ergaenzung-354251.html

Ausgedruckt am: 22.12.2024 um 08:12 Uhr

Epixc0re
Epixc0re 09.11.2017 um 18:33:55 Uhr
Goto Top
Servus Frank,

ohne Quellcode leider absolut nutzlos.


lG,
Stefan
Friemler
Friemler 09.11.2017 um 19:01:23 Uhr
Goto Top
Hallo Frank,

das Tool übertrifft seinen Namen mittlerweile bei weitem, ist ja eher so etwas wie ein Schweizer Messer für die Konsole geworden. Sollte es evtl. SCK für "Swiss Console Knife" heißen? Ein SFK für "Swiss File Knife" gibt es schon. face-wink

Auf jeden Fall: Thumbs up!

Zitat von @Epixc0re:

ohne Quellcode leider absolut nutzlos.

Ach ja? Trifft dann wohl auch auf die meisten Programme zu, mit denen man täglich so umgeht... Solche Kommentare sind leider auch absolut nutzlos. face-sad

Grüße
Friemler
134464
134464 10.11.2017 aktualisiert um 09:38:34 Uhr
Goto Top
Zitat von @Epixc0re:
ohne Quellcode leider absolut nutzlos.
Machs doch erst mal selber besser... So antworten meist nur die die selbst alles nur aus Copy n' Paste zusammenstückeln.
BassFishFox
BassFishFox 10.11.2017 um 15:31:20 Uhr
Goto Top
Das sieht ja gut aus!

Danke
BFF
Pedant
Pedant 12.11.2017 aktualisiert um 21:48:30 Uhr
Goto Top
Hallo Liebe Kollegen,

ein verregnetes Wochenende schaffte Gelegenheit dem Taschenrechner des Tools die Berechnung von Zeitspannen beizubringen.
Das ist jetzt in die Taschenrechnerfunktion integriert (Pedate 3.1).
Zuvor ging das nur über den Umweg der Wandlung in Unixzeit (Pedate 3.0).

Näheres zum Taschenrechner:
pedate /calc ?

Nähere Infos zur Zeitspannenberechnung und zur flexibel Ausgabe des Ergebnisses:
pedate ~ts ?

Beispiele (aus der internen Hilfe)
  /calc "ts:td 11.01.2017 6:00 - 01.01.2017 0:00"
    => 10,25
  /calc "ts 11.01.2017 6:00 - 01.01.2017 0:00" Das sind ~tstd Tage oder ~tsd Tage und ~tsh Stunden.
     => Das sind 10,25 Tage oder 10 Tage und 6 Stunden.
  /calc "ts 17:30:45 - 9:00" ~tsth\t~tsh\t~tsm\t~tss
     => 8,5125	8	30	45
        (\t ist eine besondere Zeichenfolge, die zu einem Tabulator umgewandelt wird (siehe ~ ?)).
  /calc "ts:th 17:10 - 9:00" /m=d ~tsth sind etwa ~m=d:f2 Stunden.
     => 8,16666666666667 sind etwa 8,17 Stunden.

Danke an Friemler, Specht und BassFishFox für Euer positives Feedback.
So macht es Spaß seine Arbeit (auch ohne Quellcode) zu veröffentlichen.

@Epixc0re: Trau Dich ruhig, ich verbreite hier keine Spionagetools.

Gruß Frank

PS: Wenn es keiner Doku/Hilfefunktion bedürfte, würde programmieren mehr Spaß machen und wesentlich schneller voran gehen.
PPS: Auch wenn ich mir die Syntax meine Skriptsprache selbst ausgedacht habe, bin ich froh dass es die interne Hilfe gibt.
StefanKittel
StefanKittel 13.11.2017 um 07:05:12 Uhr
Goto Top
Moin,

je nach Projekt bin ich auch nicht scharf den Quellcode zu verbreiten.
Inzwischen signiere ich aber meine exe mit einem öffentlichen Zertifikat.

Stefan
Pedant
Pedant 17.11.2017 um 16:37:26 Uhr
Goto Top
Hallo Liebe Kollegen,

noch zwei kleine Neuerungen => Pedate 3.2

Im Taschenrechner kann jetzt auch eine Zeichenfolge zu einer Dezimalzahl oder Ganzzahl gewandelt werden.
<code type=plain"> Die zu wandelnde Zeichenfolge wird auf Ziffern reduziert.
/calc "s2d a1 b2 c3 d" => 123
Sollte ein Minuszeichen vor der ersten Ziffer auftreten, so wird das Ergebnis negiert.
Andere Minuszeichen werden ignoriert.
/calc "s2d a-b1 c-2 d3 d" => -123
/calc "s2d ab1 c-2 d3 d" => 123
Sollte die Zeichenfolge ein oder mehrere Dezimaltrennzeichen enthalten,
so wird das letzt als solches gewertet und alle anderen ignoriert.
/calc "s2d a1,b5,c5" => 15,5
Bei s2i werden Dezimaltrennzeichen ignoriert.
/calc "s2i 1,5" => 15
Zeichenfolgen können auch Platzhalter enthalten.
/calc "s2i 1 ~date 2" => 1070319662 (bei ~date = 07.03.1966)
Eine Alternative Methode Zeichenfolgen in Zahlen zu wandeln ist /mtoint, siehe: /mtoint ?
Auszug aus der Hilfe zu /calc
pedate /calc ?


Der Error-Code (errorlevel) kann beliebig gesetzt werden, was u.a. die Übergabe von einzelnen Werte in einer Batch ermöglicht, ohne die Option /v nutzen zu müssen.
<code type=plain"> Auswertungsbeispiele:
/end => Exit-Code = 2
/end "" Hallo => Exit-Code = 2
/end 1,5 => Exit-Code = 15
/end a-b,15 => Exit-Code = -15 (Minuszeichen vor erster Ziffer bleibt erhalten)
/end a:b,1-5 => Exit-Code = 15
/end a1b2c3d => Exit-Code = 123
/end a1 b2 c3 d => Exit-Code = 1
/end "a1 b2 c3 d" => Exit-Code = 123
/end ~date => Exit-Code = 7031966 (bei ~date = 07.03.1966)
/end ~yy;~MM => Exit-Code = 6603 (bei ~yy = 66 und ~MM = 03)
/end 2147483648 => Exit-Code = 4 (Zahl außerhalb des Wertebereichs)
/end Hallo => Exit-Code = 5 (keine Zahl)
/end 9223372036854775808 => Exit-Code = 5 (Ziffernfolge zu groß für "Long")
/end 5 => Exit-Code = 5 (Ziffernfolge = 5)

...

Anwendungsbeispiel (zweizeilig):
C:\> Pedate ~dd /m=tag /d 01.~MM.~yyyy /ds tn2 /ds 7 /if "number ~dd equ ~m=tag" Patchday /end 10 ; kein Patchday ;
C:\> if errorlevel 10 wuauclt.exe /detectnow
=> Ausgabe: Patchday (Exit-Code = 10) (am zweiten Dienstag im Monat)
=> Ausgabe: kein Patchday (Exit-Code = 0) (an allen anderen Tagen)
=> "wuauclt.exe /detectnow" wird aufgerufen oder nicht
Erläuterung:
1. Der heutige Tag wird in der Variablen tag gesichert (siehe: /m= ?)
2. Das interne Datum wird auf den 01. des aktuellen Monats, des aktuellen Jahres gesetzt (siehe: /d ? und ~ ?).
3. Das interne Datum wird auf den nächsten Dienstag verschoben (siehe: /ds ?).
4. Das interne Datum wird um weitere 7 Tage verschoben (siehe: /ds ?).
5. Es wird zur Fallunterscheidung geprüft, ob der Tag des internen Datums
identisch ist mit dem Wert der Variablen tag (siehe: /if und ~m= ?).
6. a) Falls wahr, wird "Patchday" ausgegeben und der Ablauf mit dem Exit-Code 10 beendet.
6. b) Falls falsch, wird "kein Patchday" ausgegeben und der Ablauf endet regulär mit dem Exit-Code 0.
7. Die zweite Zeile ruft "wuauclt.exe /detectnow" auf, falls der errorlevel 10 oder größer ist.
Auszug aus der Hilfe zu /end
pedate /end ?

Gruß Frank
Pedant
Pedant 03.01.2018 um 11:37:10 Uhr
Goto Top
Frohes Neues liebe Kollegen,

apropos Neues, es kamen ein paar Funktionen hinzu => Pedate 4.0


Stringoperationen
tolower      - String in Kleinbuchstaben (string)
toupper      - Sting in Großbuchstaben (STRING)
firsttoupper - Erstes Zeichen groß alle weiteren klein (String)
lenght       - Länge (Anzahl der Zeichen: 6)
inverse      - String in umgekehrter Reichenfolge (gnirtS)
subi         - Substring von Index zu Index
subl         - Substring ab Index eine Anzahl an Zeichen
subs         - Substring von Suchstring1 bis Suchstring2 (inkl. und exkl. Suchstrings)
subc         - Häufigkeit des Vorkommens einer Teilzeichenfolge
position     - Indexposition einer Teilzeichenfolge
replace      - Teilzeichenfolgen durch andere ersetzen
trim         - White-Spaces und/oder eingene Zeichen an den Rändern entfernen
trimstart    - Wie trim, aber nur am Anfang der Zeichenfolge
trimend      - Wie trim, aber nur am Ende der Zeichenfolge
Wahlweise mit oder ohne Unterscheidung der Groß-/Kleinschreibung
Wahlweise von links oder rechts zählend/suchend/ersetzend
Weitere Details: pedate /str ?


Textdateien lesen und schreiben
Inhalte aus einer Textdatei zeilenweise lesen und verarbeiten
(Kombinierbar mit Inhalten aus der Eingabeaufforderung)
Ausgaben selektiv in eine Textdatei schreiben und/oder in der Konsole ausgeben
Das Encoding (Codepage, Unicode) kann für Ein- und Ausgabedatei gesetzt werden.
Weitere Details: pedate /fin ? und pedate /fout ?


Skriptdateien (optional)
Kommandozeilenparameter können in Sktriptdateien ausgelagert werden.
Bei Aufruf von Pedate können Skriptdatei(en) mit Kommandozeilenparametern kombiniert werden.
Sktriptdateien können verschachtelt werden.
Das erleichtert das Schreiben und Wiederverwenden von komplexeren Befehlskombinationen.
Es "umgeht" auch die Längenbegrenzung (2^11 -1 oder 2^13 -1 Zeichen) einer einzelnen Befehlszeile
Weitere Details: pedate /script ?


Schleifen und Verzweigungen
Goto Label oder goto Parameternummer
Mit Goto-Anweisungen können Schleifen gebildet und Verzweigungen bei If-Anweisungen vereinfacht werden.
Weitere Details: pedate /goto ?


Weiteres
/list - Auflistung aller eingegebenen Parameter (verbessert)
/show - Auflistung aller Ausgabeelemente (verbessert)
~last - Wiederverwendung von Ausgabeelementen (neu)
Weitere Details: pedate /list ?, pedate /show ?, pedate ~last ?


Das sollte es jetzt erstmal gewesen sein. Weitere Funktionen habe ich zur Zeit nicht in Planung.
Falls aber einer von Euch Wünsche hat...

Gruß Frank
Pedant
Pedant 26.09.2018 um 09:30:41 Uhr
Goto Top
Hallo liebe Kollegen,

noch eine kleine Neuerung => Pedate 4.2

Biosversion
~bios - Ausgabe von Informationen über das Bios der Hauptplatine
~biosversion - Ausgabe der Versionsnummer des Bios der Hauptplatine
Bsp.:
pedate ~mainboard mit Bios ~biosversion
=> Asus P5K Pro (Rev 1.xx) mit Bios 1303


Seit Verion 4.1...

Der Taschenrechner erhielt ein paar weitere "Rechenarten" (Umwandlungen).
- c2i (Character zu Ganzzahl)
- c2h (Character zu Hexadezimal)
- i2c (Ganzzahl zu Character)
- h2c (Hexadecimal zu Character)
Bsp.:
pedate /calc "i2c 92"
=> \

Einführung des Parameters /vo als kleinere Variante von /v
Siehe: pedate /v ?

Gruß Frank