Wie kann ich in Batch eine Variable auf eine bestimmte länge (Zeichen) verkürzen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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

  1. Die gewünschte Länge wird abgefragt
  2. Der eingegebene Wert wird in eine Variable LAENGE geschrieben
  3. dd liest einmal aus urandom und
  4.  uuencode verwendet eine Base64-Kodierung um nur lesbare Zeichen zu erhalten
  5. head ermittelt die ersten zwei Zeilen
  6. tail  ermittelt davon die erste Zeile
  7. cut schneidet auf die zuvor eingegebene Länge ab.

Ist das so ausreichend für Deine Bedürfnisse?

Linuxhase

maximilianus7  24.09.2015, 23:10

aha, in unix kann man das auch lösen. hilft hier aber nicht.

1