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

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

Member: bastla
Solution bastla May 01, 2015 updated at 17:09:06 (UTC)
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
Member: rubberman
Solution rubberman May 01, 2015 updated at 17:09:11 (UTC)
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
Member: IceAge
IceAge May 01, 2015 at 17:09:44 (UTC)
Goto Top
perfekt, vielen Dank euch beiden.
Member: bastla
Solution bastla May 01, 2015, updated at May 04, 2015 at 12:08:03 (UTC)
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]
Member: rubberman
rubberman May 01, 2015 at 18:34:34 (UTC)
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
Member: bastla
bastla May 01, 2015 at 20:22:47 (UTC)
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