Forum: PC-Programmierung Batch String variabler Länge zusammensetzen oder m


von Paul (Gast)


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

von tastendrücker (Gast)


Lesenswert?

Betriebssystem?

Für Windows:

SET /p EINGABE="Zahl Eingeben:"
SET EINGABE=%EINGABE%**********
SET AUSGABE=%EINGABE:~0,10%
ECHO %AUSGABE% > ausgabe.txt

von Paul (Gast)


Lesenswert?

Sorry habs vergessen.
Ja Windows.

Super, Dankeschön!


Hatte mir einen Wolf abgesucht...

von DPA (Gast)


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"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.