Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 FOR-Schleife Modulo auf Variable, fehlender Operator

Frage Entwicklung Batch & Shell

Mitglied: horn-christian

horn-christian (Level 1) - Jetzt verbinden

26.06.2012 um 10:28 Uhr, 5274 Aufrufe, 2 Kommentare

Hi,

Ziel ist es, aus den 52 Wochen des Jahres maximal 8 Sätze zu generieren - kein Problem, sollte mit Modulo einfach zu handhaben sein, ab dem neunten fängt das Spiel wieder von vorne an, die Woche hole ich mir über die Unixtools, dass nach Silvester in der 52sten Woche (Modulo 4) wieder bei 1 begonnen wird ist zu vernachlässigen.

Beim testen bin ich so weit gekommen

01.
@echo OFF 
02.
cls 
03.
 
04.
:: um Variablen innerhalb von FOR-Schleifen benutzen können 
05.
SETLOCAL ENABLEDELAYEDEXPANSION 
06.
 
07.
FOR /L %%i IN (1,1,30) DO ( 
08.
	set /a bla=%%i 
09.
	set /a fasel=!bla! %7 
10.
	set bla 
11.
	set fasel 
12.
)
bla entspricht dabei jedoch immer fasel, Ausgabe demnach

01.
bla=1 
02.
fasel=1 
03.
bla=2 
04.
fasel=2 
05.
... 
06.
bla=20 
07.
fasel=20 
08.
bla=21 
09.
fasel=21 
10.
...
den Modulo bekomme ich so nicht raus. Hat da jemand einen Tipp für mich?

Gruss, Christian.
Mitglied: horn-christian
26.06.2012 um 11:14 Uhr
Fehler gefunden

01.
In a batch script, the Modulus operator (%) must be doubled up to (%%). 
01.
@echo OFF 
02.
cls 
03.
 
04.
:: um Variablen innerhalb von FOR-Schleifen benutzen können 
05.
SETLOCAL ENABLEDELAYEDEXPANSION 
06.
 
07.
FOR /L %%i IN (1,1,30) DO ( 
08.
	set /a bla=%%i 
09.
	set /a fasel=!bla %% 7 
10.
	set bla 
11.
	set fasel 
12.
)
ergibt

01.
bla=1 
02.
fasel=1 
03.
... 
04.
bla=7 
05.
fasel=0 
06.
...
Bitte warten ..
Mitglied: pieh-ejdsch
26.06.2012 um 14:27 Uhr
moin christian,

01.
:: um Variablen innerhalb von FOR-Schleifen benutzen können 
02.
SETLOCAL ENABLEDELAYEDEXPANSION
wenn Du numerische Variablen innerhalb von Klammern berechnest, dann ist die Verzögerte Auflösung vernachlässigbar.
Du rechnest mit Variablen ohne Prozent- bzw Ausrufezeichen.
Da Du die Variable mit Set ausgibst ist auch keine Verzögerung nötig.
Nur bei anderen Verwendungen ist ENABLEDELAYEDEXPANSION nötig.

01.
@echo off 
02.
setlocal disabledelayedexpansion 
03.
set /a Modulo = 7 
04.
FOR /L %%i IN (1,1,30) DO ( 
05.
  set /a fasel=%%i %%Modulo 
06.
  set /a bla=%%i 
07.
  set bla 
08.
  set fasel 
09.
  setlocal enabledelayedexpansion 
10.
  echo bla=!bla! 
11.
  endlocal 
12.
)
Da kannste ja den Beitrag als gelöst Markieren...

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Batch & Shell
gelöst Abfrage ERRORLEVEL springt aus der FOR Schleife (8)

Frage von Galindiesel zum Thema Batch & Shell ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...