Batch String variabler Länge zusammensetzen oder m

Gast #5806286
Lesenswert?
• ▲
▼
Hi,
ich muss mit einem Batch folgendes machen.
User gibt eine Zahl ein, die zwischen 3 und 10 Zeichen lang ist.
Ist die Zahl kürzer als 10 muss der Rest mit dem Zeichen * aufgefüllt 
und in eine Datei geschrieben werden.
Die Anzahl der eingegebenen Zeichen kann ich bestimmen. Aber wie kriegt 
man dieses zusammensetzen hin? Oder das Schreiben der richtigen Anzahl 
von * in die Datei?
Bsp.
Eingabe: 12345   In der Datei soll dann stehen 12345*****
Eingabe: 1234567 In der Datei soll dann stehen 1234567***

Gruß
Paul
Gast #5806364
Lesenswert?
• ▲
▼
Falls das jemand mal noch für bash statt batch mit beliebigem 
füllzeichen und länge braucht, hier wäre noch eine Methode:
1
#!/bin/bash
2

3
# Funktion um nachfolgende Auffüllzeichen einzufügen
4
pad(){
5
  c="$1"
6
  n="$2"
7
  s="$3"
8
  # Funktionsabbruch falls 2tes Argument keine Zahl
9
  [ -n "$n" ] && [ "$n" -eq "$n" ] || return 1
10
  # Text ohne newline ausgeben
11
  printf "%s" "$s"
12
  i="${#s}"
13
  # Füllzeichen ausgeben
14
  while [ "$i" -lt "$n" ]
15
  do
16
    echo -n "$c";
17
    i=$(($i + 1))
18
  done
19
  # Abschliessendes newline wieder ausgeben
20
  echo
21
}
22

23
# 10 Zeichen einlesen
24
n=10
25
read -n "$n" input # Grosses -N stat -n für enter ignorieren
26
[ "${#input}" != "$n" ] || echo $? # Manuelles newline falls nicht bei <10 Zeichen enter gedrückt wurde
27

28
# Eingabe mit n Füllzeichen ausgeben
29
pad "*" "$n" "$input"

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.