Top-Themen

Aktuelle Themen (A bis Z)

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 Forschleife mit Anweisungsblock klappt nicht warum auch immer

Mitglied: Metzger-MCP

Metzger-MCP (Level 2) - Jetzt verbinden

20.07.2006, aktualisiert 21.07.2006, 7202 Aufrufe, 5 Kommentare

Hallo ! ich hätte da mal ne Frage

Geht es eigentlich nicht das ich statt einer Anweisung einen Anweisungsblock nach einer For Schleife abarbeiten kann ? Habe jetzt ein ganzes Wochenende geknobbelt und getüfftelt und habe es trotzdem zum verrecken nicht hinbekommen.
Einen Anweisungsblock zu bekommen, in dem auch die %% Variablen die Werte in den einzelnen For durchgängen behalten haben.

Ich möchte innerhalb einer Forschleife nicht nur eine Anweisung sondern ein Anweisungsblock abarbeiten.

Mein Beispiel

for /F "eol=; tokens=1,2,3,4* delims=. "%%a in (Datenzusammenstellung.txt) do

(
set za1= %%a
set zb2= %%b
set zc3= %%c
set zd4= %%d
if /i %za1% LSS %za2% set /p wert1= %za1% + %za2%
if /i %za2% LSS %za3% set /p wert2= %za2% + %za3%
if /i %za3% LSS %za4% set /p wert3= %za3% + %za4%
Echo %za1% %za2% %za3% %za4% >> information.txt
Echo %wert1% %wert2% %wert3% >> information2.txt
)

habe es auch wie folgt probiert, da wurden aber nicht die Variablen %%... übermittelt.

for /F "eol=; tokens=1,2,3,4* delims=. "%%a in (Datenzusammenstellung.txt) do call :for1
:

:for1
set zd4= %%d
if /i %za1% LSS %za2% set /p wert1= %za1% + %za2%
Echo %za1% %za2% %za3% %za4% >> information.txt

goto ende

:ende

@ Biber so habe ich nun gemacht

Mfg Metzger
Mitglied: Biber
20.07.2006 um 09:06 Uhr
Moin Metzger-MCP,

der FOR-Block besteht, auch wenn Du ihn wegen Lesbarkeit und Übersichtlichkeit optisch auf mehrere zeilen auseinandergezogen hast, für dem CMD-Interpreter aus einer Zeile.
Dementsprechend werden die in der einen Anweisungszeile enthaltenen Variablen einmal aufgelöst.

Zwei, drei Umgehungsvarianten:
a) Verzögerte Variablenauflösung / DelayedExpansion.
Muss "deklariert" werden.
Variablenschreibweise ändert sich von "%var%" auf "!var!"
01.
@echo off % setlocal EnableDelayedExpansion
02.
for /F "eol=; tokens=1,2,3,4* delims=. "%%a in (Datenzusammenstellung.txt) do (
03.
set za1= %%a
04.
set zb2= %%b
05.
set zc3= %%c
06.
set zd4= %%d
07.
if /i !za1! LSS !za2! set /a wert1= !za1! + !za2!
08.
if /i !za2! LSS !za3! set /a wert2= !za2! + !za3!
09.
if /i !za3! LSS !za4! set /a wert3= !za3! + !za4!
10.
Echo !za1! !za2! !za3! !za4! >> information.txt
11.
Echo !wert1! !wert2! !wert3! >> information2.txt
12.
)
-oder-
b) aus der For-Anweisung einen Unterblock CALLen:
01.
for /F "eol=; tokens=1,2,3,4* delims=. "%%a in (Datenzusammenstellung.txt) do call :sub %%a %%b %%c %%d
02.
goto :eof
03.
::~~~~~~~Ende des Batches ~~ danach kommt eine sub-"Routine"
04.
:sub 
05.
:: ######## aus %%a, %%b ....werden Parameter %1, %2....
06.
set za1= %1
07.
set zb2= %2
08.
set zc3= %3
09.
set zd4= %4
10.
if /i %za1% LSS %za2% set /a wert1= %za1% + %za2%
11.
if /i %za2% LSS %za3% set /a wert2= %za2% + %za3%
12.
if /i %za3% LSS %za4% set /a wert3= %za3% + %za4%
13.
Echo %za1% %za2% %za3% %za4% >> information.txt
14.
Echo %wert1% %wert2% %wert3% >> information2.txt
15.
goto :eof
16.
:: ~~~~~~~~~ Ende von Block "sub"; zurück zum CALLer
-oder/und-
c) auf ein paar Variablen-Umschaufelungen verzichten:
01.
@echo off & setlocal EnableDelayedExpansion
02.
for /F "eol=; tokens=1,2,3,4* delims=. "%%a in (Datenzusammenstellung.txt) do (
03.
set za1= %%a
04.
set zb2= %%b
05.
set zc3= %%c
06.
set zd4= %%d
07.
if /i %%a LSS %%b set /a wert1=%%a% + %%b
08.
if /i %%b LSS %%c set /a wert2= %%b + %%c
09.
if /i %%c LSS %%d set /p wert3= %%c + %%d
10.
Echo %%a %%b %%c %%d >> information.txt
11.
Echo !wert1! !wert2! !wert3! >> information2.txt
12.
)
Unter Forumssuche "DelayedExpansion" findest Du mehr.
Ebenso unter CMD /? und IF /? unter demselben Stichwort.

HTH Biber
Bitte warten ..
Mitglied: Metzger-MCP
20.07.2006 um 11:02 Uhr
Das mit dem

setlocal EnableDelayedExpansion

kannte ich garnicht.

Gibt es da noch andere Befehle / Schlüssel ?

MFG Metzger
Bitte warten ..
Mitglied: maneich
20.07.2006 um 18:45 Uhr
Hallo,

ohne das weitere zu überprüfen, testest Du das Script genau so wie es hier steht?

Dann solltest Du mal bei "%%a ein Leerzeichen dazwischen machen " %%a.

MfG maneich
Bitte warten ..
Mitglied: Biber
20.07.2006 um 18:54 Uhr
@maneich
Nein, getestet hab ich nichts davon...bei uns war/ist es viel zu warm zum Testen.
Sollte nur eine Skizze sein - hab ich (wieder mal) vergessen dranzuschreiben.
Ansonsten arbeite sogar ich manchmal mit Copy&Paste, auch wenn ich immer immer wieder sage, dass dabei nur vorhandene Fehler potentiert werden.

@Metzger-MCP
Schau Dir mal die (neueren) M$-Hilfen zu CMD, IF, CALL, SETLOCAL, FOR ...an.
Was hier so gepostet wird, ist in der Regel nichts Undokumentiertes.

Gruß
Biber
Bitte warten ..
Mitglied: Metzger-MCP
21.07.2006 um 01:08 Uhr
Also mein Waaahnsinige Batchdatei ist fertig !
Sie geht auch gut

Ich danke euch auf jeden Fall

Mfg Metzger
Bitte warten ..
Ähnliche Inhalte
Microsoft
Profilsynchronisation klappt nicht immer
Frage von D1Ck3nMicrosoft3 Kommentare

Hallo zusammen, ich bin schon etwas länger an der Sache dran, aber ich weiß gerade nicht mehr weiter: Wir ...

Windows Installation

Netzwerkdrucker hinzufügen klappt nicht

gelöst Frage von Helios007Windows Installation13 Kommentare

Hallo Zusammen, das Netz ist voll mit ähnlichen Problemen, allerdings hilft einfach nichts mein Problem zu beseitigen. Ziel ist ...

Windows 7

Druckertreiber entfernen klappt nicht

gelöst Frage von killtecWindows 75 Kommentare

Hallo zusammen, ein Drucker auf dem PC meiner Eltern lässt sich nicht entfernen. Das Problem ist das: OS: Windows ...

Exchange Server

Anmeldung klappt nicht beim client

Frage von jensgebkenExchange Server17 Kommentare

hallo gemeinschaft habe einen windows 2008 server aufgesetzt - die verbindung zum client klappt gut - ich kann auf ...

Neue Wissensbeiträge
Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von Lochkartenstanzer vor 11 StundenHumor (lol)11 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Windows Update

KB4517297 verfügbar, behebt Fehler in VB6 VBA VBScript

Information von sabines vor 14 StundenWindows Update

Das Update behebt mögliche Fehler in VB6, VBA und VBScript, die durch das Update KB4512486 vom August entstanden sind. ...

Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 2 TagenViren und Trojaner3 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Windows 7
Win7 Update scheitert KB4512506
Information von infowars vor 2 TagenWindows 7

Falls jemand auch das Problem hat mit dem: Monatliches Sicherheitsqualitätsrollup für Windows 7 für x64-basierte-Systeme (KB4512506) Das scheint mit ...

Heiß diskutierte Inhalte
Hyper-V
Bei Neuaufbau auf Core-Server setzen?
gelöst Frage von dertowaHyper-V32 Kommentare

Hallo zusammen, ich habe vor einigen Monaten die Verantwortung für eine EDV-Landschaft übernommen die seit Jahren von einem Dienstleister ...

Router & Routing
VPN Verbindung zur Fritzbox über Speedport
gelöst Frage von SchwabenlandRouter & Routing13 Kommentare

Hallo! Ich bin gerade im Urlaub an der Nordsee :-) In unserem Ferienhaus haben wir WLAN, das durch einen ...

Netzwerkmanagement
Zentrales Switch-Management
Frage von joergNetzwerkmanagement11 Kommentare

Hallo zusammen, ich bin auf der Suche nach einem Management für Switche. Wir haben eine heterogene Struktur und jede ...

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von LochkartenstanzerHumor (lol)11 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...