iceage
Goto Top

BatchSkript für Schleife gesucht

Guten Abend,

ich versuche seit einiger Zeit eine Schleife via Batch zu erstellen, welche die folgende Aufgabe hat: Es sollen alle Kombinationen aus den beiden Zahlen 1 und 0 in einem File ausgegeben werden. Die Kombinationen aus den beiden Zahlen sollen immer 5-stellig sein...

Beispiel:

00000
00001
00011
00010
00100
11111

Kann mir hier jemand helfen?

Danke u. Gruß

I.

Content-Key: 270867

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

Ausgedruckt am: 29.03.2024 um 01:03 Uhr

Mitglied: bastla
Lösung bastla 01.05.2015 aktualisiert um 19:09:06 Uhr
Goto Top
Hallo IceAge!

q&d face-wink:
@for %%a in (0 1) do @for %%b in (0 1) do @for %%c in (0 1) do @for %%d in (0 1) do @for %%e in (0 1) do @echo %%a%%b%%c%%d%%e>>"D:\Deine Datei.txt"
Grüße
bastla
Mitglied: rubberman
Lösung rubberman 01.05.2015 aktualisiert um 19:09:11 Uhr
Goto Top
Hallo IceAge und bastla.

Sollte dahinter der Gedanke stecken, binäre Werte zu berechnen, sähe das etwa so aus:
@echo off &setlocal EnableDelayedExpansion

for /l %%i in (0,1,31) do (
  call :Dec2Bin %%i 5 bin
  echo !bin!
)

pause
exit /b

:Dec2Bin byVal_dec  byVal_length  byRef_VarOut
setlocal EnableDelayedExpansion
set /a "dec = %~1, n = %~2"  
set "strBin="  
for /l %%i in (1,1,%n%) do (
   set /a "x = dec & 1 , dec >>= 1"  
   set "strBin=!x!!strBin!"  
)
endlocal &set "%~3=%strBin%"  
exit /b
Grüße
rubberman
Mitglied: IceAge
IceAge 01.05.2015 um 19:09:44 Uhr
Goto Top
perfekt, vielen Dank euch beiden.
Mitglied: bastla
Lösung bastla 01.05.2015, aktualisiert am 04.05.2015 um 14:08:03 Uhr
Goto Top
Hallo rubberman!

Dann aber lieber gleich allgemein (und per Rekursion):
@echo off & setlocal
set "Zeichen=0 1"  
set /a Anz=5

set "Datei=D:\Deine Datei.txt"  

del "%Datei%" 2>nul  
for %%z in (%Zeichen%) do call :ZeichenHinzu %%z 1 %%z
goto :eof

:ZeichenHinzu
set "Ergebnis=%3"  
set /a Stelle=%2
if %Stelle%==%Anz% (
    >>"%Datei%" echo %Ergebnis%  
    goto :eof
)
set /a Stelle+=1
for %%n in (%Zeichen%) do call :ZeichenHinzu %%n %Stelle% %Ergebnis%%%n
goto :eof
Grüße
bastla

[Edit] Abgeändert, sodass nicht nur Ziffern verwendet werden können - siehe Zeile 2 [/Edit]
Mitglied: rubberman
rubberman 01.05.2015 um 20:34:34 Uhr
Goto Top
Hallo bastla,

unsere beiden Codes gehen in unterschiedliche Richtungen. Deiner in Richtung Kombinatorik und meiner in die Konvertierung von Zahlensystemen. Somit bist du näher an der Frage. Ich bin über 0 und 1 gestolpert und habe sofort binär gedacht face-wink

Grüße
rubberman
Mitglied: bastla
bastla 01.05.2015 um 22:22:47 Uhr
Goto Top
Hallo rubberman!
Ich bin über 0 und 1 gestolpert und habe sofort binär gedacht face-wink
War auch meine erste Überlegung - aber da keine Konvertierung einzelner Werte gefragt schien, habe ich den kombinatorischen Ansatz gewählt (und etwas nachgebessert, weil ich meine Variante 1 letztlich doch zu "d" fand face-wink) ...

Grüße
bastla