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
Betriebssystem? Für Windows: SET /p EINGABE="Zahl Eingeben:" SET EINGABE=%EINGABE%********** SET AUSGABE=%EINGABE:~0,10% ECHO %AUSGABE% > ausgabe.txt
Sorry habs vergessen. Ja Windows. Super, Dankeschön! Hatte mir einen Wolf abgesucht...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.