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, 7119 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
Batch & Shell

SED Sonderzeichen maskieren klappt nicht.

gelöst Frage von BloodyRulzBatch & Shell5 Kommentare

Hallo zusammen, ich hoffe Ihr könnt mir helfen. System: Windows Folgendes Problem: Ich habe eine Konfigdatei von einem Router. ...

Outlook & Mail

SBS2011 und Outlook2016 - Zugriff klappt nicht?

Frage von wurmelzOutlook & Mail9 Kommentare

Hallo wir mussten jetzt wegen einer neuen Software auf Office2016 umsteigen Naja. Ich habe einen SRV-Record erstellt, damit Autodiscover ...

Windows Server

Indizierung Fileserver - klappt nicht so richtig

gelöst Frage von cseWindows Server14 Kommentare

Hi Leute, habe hier einen Windows 2008R2 Server am Laufen. Dort liegen unsere NW-Laufwerke, homefolder und und und. Wie ...

DNS

Nslookup unknown - ping klappt

gelöst Frage von 45455DNS8 Kommentare

Hallo, in einer W2K3-AD-Domäne funktioniert nur an einer von 6 W7-64-Maschine das nslookup nicht richtig. Meldung: Standardserver: UnKnown Address: ...

Neue Wissensbeiträge
Internet

Europa baut Zensurinfrastruktur auf: EU-Parlament stimmt für Upload-Filter, Leistungsschutzrecht und gegen KI-Forschung

Information von Frank vor 2 TagenInternet9 Kommentare

Eine sehr schlechte Entscheidungen für die Zukunft Europas ist gefallen: Der Rechtsausschuss im EU-Parlament stimmte heute morgen in einer ...

Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 4 TagenWindows 102 Kommentare

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 4 TagenVideo & Streaming9 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Erkennung und -Abwehr
Trendmicro WFBS 10 ist in deutsch verfügbar!
Tipp von VGem-e vor 5 TagenErkennung und -Abwehr4 Kommentare

Servus Kollegen, downloadbar unter

Heiß diskutierte Inhalte
LAN, WAN, Wireless
WLAN-Übersicht wie FritzWLAN jedoch für PC gesucht
gelöst Frage von HenereLAN, WAN, Wireless16 Kommentare

Servus, ich suche für einen Windows PC eine Anwendung die so ähnlich wie die FritzWLAN App auf dem Smartphone ...

Netzwerke
Netzwerkkommunikation von Windows 10 aus Freigabe mit Windows XP funktioniert nicht
gelöst Frage von KLinnebankNetzwerke14 Kommentare

Hallo werte Gemeinde, ja, es ist Freitag. Aber das ist KEINE Freitagsfrage Ich habe ein für mich völlig wirres ...

Festplatten, SSD, Raid
Server Architektur mit RAID 5 - wozu interne Platten?
Frage von Pierre78Festplatten, SSD, Raid10 Kommentare

Hallo, ich beschäftige mich gerade mit RAID Systemen. Ich habe mir einen gebrauchten Dell PowerEdge R515 gekauft. Dieser hat ...

Samba
Netzlaufwerk über VPN hat Probleme
Frage von geocastSamba8 Kommentare

Hallo Zusammen Ich habe hier ein QNAP TS-269 Pro (aktuellste Firmware) NAS in einem entfernten Standort, der über VPN ...