Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch Zeichen (bsp x) nach Variablen-Anzahl setzen

Frage Entwicklung Batch & Shell

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

26.01.2012, aktualisiert 18.10.2012, 3502 Aufrufe, 8 Kommentare

Guten Tag,
nach schon einigen Fragen und vielen gefundenen Anworten bin ich von diesem Forum total begeistert! Das Beste was es gibt in dieser Art!

Nach der Feststellung der Länge einer Variable (die dann als Zahl in einer Datei gespeichert wird) möchte ich die Anzahl als Zeichen x anzeigen lassen.
Also: Eingabe: Wort = 4 (Zeichen) in *.txt, dann 4 (Variable) auslesen und anzeigen als: xxxx

01.
set #=%MyVar% 
02.
set length=0 
03.
 
04.
:loop 
05.
if defined # (set #=%#:~1%&set /A length += 1&goto loop) 
06.
>anzahl.txt echo %MyVar% 
07.
 
08.
???
Gruß OKIDOKI
Mitglied: bastla
26.01.2012 um 16:37 Uhr
Hallo OKIDOKI!

So ganz klar ist mir Dein Vorhaben nicht ...

Wozu soll (abgesehen davon, dass Deine Zeile 6 das ursprüngliche Wort schreibt) die Länge in die Datei geschrieben werden, bzw was willst Du letztlich erreichen?

Dein bisheriger Ansatz ermittelt ja schon die Zeichenanzahl - wenn dann ein String aus lauter "x" mit der Länge der gefundenen Anzahl nur ausgegeben werden soll, könnte das zB so gehen:
01.
@echo off & setlocal 
02.
set "#=%myVar%" 
03.
set /a length=0 
04.
 
05.
:loop 
06.
if defined # (set #=%#:~1% & set /a length+=1& goto loop) 
07.
 
08.
for /L %%i in (1,1,%length%) do <nul set /p=x 
09.
echo\ 
10.
echo Das war's.
Alternativ könntest Du einfach einen String mit der maximal möglichen Länge vorgeben, also
set "String=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
und danach das gewünschte Stück "abschneiden":
call set "TeilString=%%String:~-%length%%%"
Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
26.01.2012 um 17:06 Uhr
Hallo bastla,

mein Kopf ist verdreht, ich hole noch einmal aus:

In einer Datei *.txt steht eine Zahl (an einer bestimmten Stelle). Diese Zahl soll ausgelesen werden und die Zahl als Zeichen ausgegeben werden. Hierbei handelt es sich um die Anzahl eines Passwortes, das als xxxx angezeigt werden soll:

01.
@echo off &setlocal enabledelayedexpansion 
02.
for /f "usebackq delims=" %%i in ("pass.txt") do set Zeile=%%i & goto out 
03.
 
04.
:out 
05.
set len=%Zeile:~3,1% 
06.
... nun soll %len% als x-Zeichen ausgegeben werden!
Gruß OKIDOKI
Bitte warten ..
Mitglied: bastla
26.01.2012 um 17:09 Uhr
Hallo OKIDOKI!

Bis auf die Tatsache, dass die Länge nun eben nicht in %length%, sondern in %len% steht, sollten eigentlich beide Vorschläge oben passen ...

Grüße
bastla

P.S.: Das "goto out" ist sicher nicht nötig (und ein Sprung aus einer "for"-Schleife auch nicht empfehlenswert) ...
Bitte warten ..
Mitglied: OKIDOKI
26.01.2012 um 17:12 Uhr
... sag jetzt nichts bastla

01.
@echo off & setlocal 
02.
@echo off &setlocal enabledelayedexpansion 
03.
for /f "usebackq delims=" %%i in ("pass.txt") do set Zeile=%%i & goto out 
04.
 
05.
:out 
06.
set len=%Zeile:~3,1% 
07.
 
08.
for /L %%i in (1,1,%len%) do <nul set /p=x 
09.
echo\ 
10.
echo Das war's 
11.
Pause


Vielleicht noch die Frage, ob die Diskussion um ein Passowrtgenerator auf Batch-Basis weitergeführt werden soll (wie schon an anderer Stelle)? Ich behelfe mir mit Selbstgasteltem:
Passworteingabe, Zufallszahl, Passwort dahinter, weitere Zufallszahl -> dann Auslesen / Sicherheit ist natürlich nicht unendlich...

So long, danke bastla

OKIDOKI

PS: Oko, du warst schneller ...

01.
@echo off & setlocal 
02.
@echo off &setlocal enabledelayedexpansion 
03.
for /f "usebackq delims=" %%i in ("pass.txt") do set Zeile=%%i 
04.
 
05.
set len=%Zeile:~3,1% 
06.
 
07.
for /L %%i in (1,1,%len%) do <nul set /p=x 
08.
echo\ 
09.
echo Das war's 
10.
Pause
Bleibt für mich noch die Frage, wie ich den Sprung aus der for-Schelife rausbekomme...
Bitte warten ..
Mitglied: bastla
26.01.2012 um 17:18 Uhr
Hallo OKIDOKI!
Bleibt für mich noch die Frage, wie ich den Sprung aus der for-Schelife rausbekomme...
Soferne Du nur die erste Zeile der Datei benötigst, einfach:
set /p Zeile=<pass.txt
Alternative:
01.
set "Zeile=" 
02.
for /f "usebackq delims=" %%i in ("pass.txt") do if not defined Zeile set "Zeile=%%i"
Im bisher geposteten Teil gibt es übrigens noch keine Notwendigkeit für "delayedExpansion" - Du könntest daher vorläufig die Zeile 2 ersatzlos streichen ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
26.01.2012 um 20:35 Uhr
Hallo bastla,

klappt super!
Allerdings habe ich es ausprobiert ""delayedExpansion" zu streichen. Aber dann hat es nicht funktioniert ...
Erste Zeile der txt: 9408di;M;bg6sU6dy ... Ausgegebene Meldung: !Zeile:~944,8! Hat das etwas mit dem Anfang der Zeile zu tun?
Warum es stehen bleiben muss, weiß ich aber nicht!

PS: Könntest du mir noch die Funktion von echo\ deiner o.g. Formel erklären?


Gruß
OKIDOKI
Bitte warten ..
Mitglied: bastla
26.01.2012, aktualisiert 18.10.2012
Hallo OKIDOKI!
Könntest du mir noch die Funktion von echo\ deiner o.g. Formel erklären?
Da die Ausgabe der einzelnen "x" jeweils ohne Zeilenumbruch durchgeführt wird, muss am Ende noch einer her - ob Du dafür
echo.
oder
echo\
oder
echo(
verwendest, ist (fast) egal ...
Ausgegebene Meldung: !Zeile:~944,8! Hat das etwas mit dem Anfang der Zeile zu tun?
Wenn Du keine "delayedExpansion" verwendest (meine Anmerkung war nur auf den hier geposteten Schnipsel bezogen), musst Du natürlich die Variablenschreibweise mit % und nicht mit ! vornehmen ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
26.01.2012 um 21:23 Uhr
Hallo bastla,

ich muss noch viel lernen - eijajeijajei!

Herzlichen Dank!
OKIDOKI
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit findstr einen pfad hinter einem zeichen zu variable setzen
Frage von bilaluiBatch & Shell3 Kommentare

Hallo, zurzeit beschäftige ich mich mit einer Batchdatei, die einen beliebigen Laufwerkspfad hinter einem kurzem Text mit "=" zu ...

Batch & Shell
Batch Variable auf 5 Zeichen begrenzen
gelöst Frage von PinkFLuffyUnicornBatch & Shell5 Kommentare

Hallo zusammen, ich habe folgendes Problem: ich habe ein kleines Batch Programm, welches eine Benutzereingabe erfordert. der Benutzer soll ...

Batch & Shell
Inhalt einer .txt als eine Variable setzen mit Batch
gelöst Frage von AlexIOTBatch & Shell3 Kommentare

Hallo Zusammen, In der Variable.txt steht immer nur ein einziger Rechnername! - wie folgt: EW085IDFV001 Ich möchte das dieser ...

Batch & Shell
BATCH Dateinamen auslesen und an variabler Stelle x Zeichen auschneiden und am Ende wieder einfügen
gelöst Frage von Marco78Batch & Shell6 Kommentare

Ich habe folgendes Problem. Ich möchte Dateinamen um einen bestimmten Teil ändern damit ich diese sortieren kann. Ist Zustand ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 10 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 12 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen13 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...