b-free
Goto Top

Batch wird bei zu vielen Set befehlen schlampig

Hallo,

Ich habe ei kleinen Code geschrieben, der ein Passwort nicht im Klartext, sondern als Zahlenfolge hat, und mit Hilfe von dieser dann das Passwort als Variable definiert. Mein Code sieht so aus:
(er ruft die Ziffern aus den Verzeichnis VSL auf wo per Zufall angeordnete Buchstaben und Zahlen in datein 01 bis 100 gespeichert sind und dann geordnet werden)
(...)
set /p pw=<VSL/33
set /p pw=%pw%<VSL/25 
set /p pw=%pw%<VSL/28
set /p pw=%pw%<VSL/05
set /p pw=%pw%<VSL/06
set /p pw=%pw%<VSL/32
set /p pw=%pw%<VSL/12
set /p pw=%pw%<VSL/14
set /p pw=%pw%<VSL/24
set /p pw=%pw%<VSL/21
set /p pw=%pw%<VSL/19
set /p pw=%pw%<VSL/20
set /P pw=%pw%<VSL/32
echo %pw%
pause
(...)
Das Problem ist, dass es mittendrin stockt, und am ende nur die letzte Ziffer des Passwortes ausspuckt!

Weiß jemand Rat?
Hatte jemand schon einmal das Problem, oder weiß gar wie man es löst?

Dann schreibt bitte einen Kommentar!!!!

Tschüss
B-Free

Content-ID: 205599

Url: https://administrator.de/contentid/205599

Ausgedruckt am: 05.11.2024 um 14:11 Uhr

Endoro
Endoro 24.04.2013 um 20:39:15 Uhr
Goto Top
Hallo B-Free,

wie lang ist deine Zeichenkette wenn es stockt?

Gruss!
B-free
B-free 24.04.2013 um 20:43:25 Uhr
Goto Top
bei dem 4.
set /p pw=...
hört es auf... allerdings habe ich davor auch immer nur maximal 2 stellen in der Variable!!!
Endoro
Endoro 24.04.2013 aktualisiert um 21:48:35 Uhr
Goto Top
Hallo,

per Zufall angeordnete Buchstaben und Zahlen

Was denn für Buchstaben? Könntest du die mal aufzählen? Vor allem die bevor es stockt.

Gruss!
B-free
B-free 24.04.2013 aktualisiert um 22:08:17 Uhr
Goto Top
bevor es stockt ist es eine 4.
Ansonsten a-z und 0-9... Nichts was Batch stört!
Endoro
Endoro 24.04.2013 um 21:59:38 Uhr
Goto Top
Funktioniert hier normal. Welches OS?
B-free
B-free 24.04.2013 um 22:03:02 Uhr
Goto Top
Hä? "OS" was ist das??? hab ich was verpasst???
Endoro
Endoro 24.04.2013 um 22:04:16 Uhr
Goto Top
operating system. Damit meine ich die Windows-Version. face-smile
B-free
B-free 24.04.2013 um 22:07:58 Uhr
Goto Top
7 64 Bit, neustes Update und rechtmäßig Lizenziert!
Endoro
Endoro 24.04.2013 um 22:09:44 Uhr
Goto Top
Dann müsste das mal jemand mit diesem OS gegenchecken.
Bei "set /p" gibt's Versionsunterschiede und ich hab deins nicht.

Gruss!
B-free
B-free 24.04.2013 um 22:14:31 Uhr
Goto Top
aber es kann geht doch alles andere mit
 set /p var=<textdateimitvariable.log
auf meinem Rechner!
ich hab keine Ahnung warum, aber ich glaub mein Rechner mag mich nicht! :´(
andimue
andimue 25.04.2013 um 12:34:33 Uhr
Goto Top
Zitat von @B-free:
aber es kann geht doch alles andere mit
 set /p var=<textdateimitvariable.log

auf meinem Rechner!

Hallo B-free,

der Befehl ist ja auch nicht das Problem.
Er bleibt ja erst hängen bei
 set /p var=%var%<textdateimitvariable.log


Ich denk mal, es hängt mit dem Aufbau des set /p - Befehls zusammen:

das, was du hinter dem Gleichheitszeichen angibst ist ja der Prompt, der eigentlich ausgegeben werden soll und da hängt er sich wohl auf (passiert bei mir bei einem Win XP und einem Win2008R2)

Gruß
Andi
Biber
Biber 25.04.2013 aktualisiert um 12:50:32 Uhr
Goto Top
Je nun,

auch wenn es vielleicht unästhetisch aussehen mag in Zeiten der objektorientierten 5GL-Coderei, aber warum denn nicht einfach
 ...

set /p var=<textdatei01mitvariable.log
Set "sammelvar=%sammelvar%%var%"  
set /p var=<textdatei02mitvariable.log
Set "sammelvar=%sammelvar%%var%"  
set /p var=<textdatei14mitvariable.log
Set "sammelvar=%sammelvar%%var%"  
set /p var=<textdatei27mitvariable.log
Set "sammelvar=%sammelvar%%var%"  
...

Sieht zwar shice aus, aber der Algorithmus, den der Batch abbildet, der hat doch auch noch Luft nach oben.

Grüße
Biber
andimue
andimue 25.04.2013 um 13:15:34 Uhr
Goto Top
Hallo,

wenn es um "schräge" Lösungen geht hätte ich auch noch einen face-wink :

for /f %%a in ('type 1.txt ^& type 2.txt ^& type 3.txt') do set "var=%%a"  

Gruß
Andi
Endoro
Endoro 25.04.2013 um 16:59:53 Uhr
Goto Top
Hallo @all,

mittels komplizierter Versuchsanordnung face-smile hab ich raus gefunden, was
set /p var=%var%<test.txt
bewirkt. Nämlich das gleiche wie
set /p var=<test.txt
Mich hat der output "genarrt". Es wird so nix gesammelt und Bibers Code ist richtig.


Gruss!
B-free
B-free 26.04.2013 um 16:43:01 Uhr
Goto Top
Hey Super,

Danke für die Hilfe, ich hatte auch schon an so etwas gedacht, aber dachte dann, dass es eigentlich auch einen anderen weg geben müsste...

Naja dann halt kompliziert.

Tschüss
B-free