Wie kann ich in Batch eine Variable auf eine bestimmte länge (Zeichen) verkürzen?
Hallo, ich brauche in meinem Batch-Script eine zufällige Zeichenfolge, welche mal beispielsweise 8 Zeichen lang sein soll. Jetzt funktioniert das aber mit der Variable %random% nicht, da diese immer eine Unterschiedliche länge an Zeichen ausgibt. Wie kann ich das nun machen?
Bitte eine Erklärung, und nicht nur die Lösung, wie ich das mit 8 Stellen mache, sonst ist morgen garantiert wieder dieselbe Frage hier, nur mit einer anderen Länge!
2 Antworten
also:
set x=%random%%random%
set y=%x:~0,8%
set x : ich hab nicht mehr als eine 5stellige zahl für random erhalten. ev. 4 x hintereinder, damits lang genug ist
set y : wird mit `help set` erklärt: offset,länge (offset=verschiebung des startpunktes - 1 - für den teilstring). hier also: keine verschiebung.
Hallo
ich brauche in meinem Batch-Script eine zufällige Zeichenfolge, welche mal beispielsweise 8 Zeichen lang sein soll.
So zum Beispiel:
#!/bin/bash
echo "Bitte gib die gewünschte Länge an:"
read LAENGE
dd if=/dev/urandom count=1 2>/dev/null|uuencode -m -|uuencode -m -|head -n2|tail -n1|cut -c-$LAENGE
Bitte eine Erklärung, und nicht nur die Lösung
- Die gewünschte Länge wird abgefragt
- Der eingegebene Wert wird in eine Variable LAENGE geschrieben
- dd liest einmal aus urandom und
- uuencode verwendet eine Base64-Kodierung um nur lesbare Zeichen zu erhalten
- head ermittelt die ersten zwei Zeilen
- tail ermittelt davon die erste Zeile
- cut schneidet auf die zuvor eingegebene Länge ab.
Ist das so ausreichend für Deine Bedürfnisse?
Linuxhase