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-Key: 205599

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

Printed on: April 23, 2024 at 16:04 o'clock

Member: Endoro
Endoro Apr 24, 2013 at 18:39:15 (UTC)
Goto Top
Hallo B-Free,

wie lang ist deine Zeichenkette wenn es stockt?

Gruss!
Member: B-free
B-free Apr 24, 2013 at 18:43:25 (UTC)
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!!!
Member: Endoro
Endoro Apr 24, 2013 updated at 19:48:35 (UTC)
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!
Member: B-free
B-free Apr 24, 2013 updated at 20:08:17 (UTC)
Goto Top
bevor es stockt ist es eine 4.
Ansonsten a-z und 0-9... Nichts was Batch stört!
Member: Endoro
Endoro Apr 24, 2013 at 19:59:38 (UTC)
Goto Top
Funktioniert hier normal. Welches OS?
Member: B-free
B-free Apr 24, 2013 at 20:03:02 (UTC)
Goto Top
Hä? "OS" was ist das??? hab ich was verpasst???
Member: Endoro
Endoro Apr 24, 2013 at 20:04:16 (UTC)
Goto Top
operating system. Damit meine ich die Windows-Version. face-smile
Member: B-free
B-free Apr 24, 2013 at 20:07:58 (UTC)
Goto Top
7 64 Bit, neustes Update und rechtmäßig Lizenziert!
Member: Endoro
Endoro Apr 24, 2013 at 20:09:44 (UTC)
Goto Top
Dann müsste das mal jemand mit diesem OS gegenchecken.
Bei "set /p" gibt's Versionsunterschiede und ich hab deins nicht.

Gruss!
Member: B-free
B-free Apr 24, 2013 at 20:14:31 (UTC)
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! :´(
Member: andimue
andimue Apr 25, 2013 at 10:34:33 (UTC)
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
Member: Biber
Biber Apr 25, 2013 updated at 10:50:32 (UTC)
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
Member: andimue
andimue Apr 25, 2013 at 11:15:34 (UTC)
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
Member: Endoro
Endoro Apr 25, 2013 at 14:59:53 (UTC)
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!
Member: B-free
B-free Apr 26, 2013 at 14:43:01 (UTC)
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