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

Verschachtelungen mit for schleifen

Frage Entwicklung Batch & Shell

Mitglied: brainbug84

brainbug84 (Level 1) - Jetzt verbinden

12.12.2008, aktualisiert 22:05 Uhr, 2984 Aufrufe, 1 Kommentar

Hi zusammen,

ich habe folgendes Problem. Ich habe mehrere Textdateien (dat1,dat2,dat3,dat4). Den Inhalt von 2,3,4 möchte ich in Datei 1 schreiben, jedoch ohne die ersten 3 Zeilen (Skip=3) und ohne die letzten 7 Zeilen(habe ich durch eine for-Schleife dahingehend implementiert, dass ich mir die Anzahl der Zeilen in einer Variablen speichere und anschließend nur die Zeilen rausschreibe ohne die letzten 7. Nun habe ich noch eine forschleife deren die ich benötige um die dateien hochzuhzaehlen, das es unterschiedliche viele geben kann, also dat1-18 bspw.

Alleine funktionieren die Schleifen glaube ich, nur wenn ich es versuche zu vermischen geht gar nix mehr.

Könnt ihr mir vielleicht sagen was es mit dem @ vor den anweisungen auf sich hat also bspw.

for /f "tokens=1,* delims=:" %%i in ('findstr /n $ test.txt') do @(for /L %%a in (2,2,6) do @if %%i==%%a @echo %%j

01.
 
02.
set /a i=8   //beispielwert für anzahl der dateien 
03.
 
04.
set /a zaehler2=2 //zaehler fängt bei 2 an, da ab der zweiten datei der inhalt in die erste datei soll 
05.
set /a k=%i%-2 //anzahl der schritte von 2-8 => 6 
06.
 
07.
/* 
08.
*Hier wird geschaut wieviel Zeilen die jeweilige Datei hat und das k-mal(hier sechs mal). Das ergebnis soll in count gespeichert werden. 
09.
*/ 
10.
for /L %%b in (1,1,%k%) do (FOR /f "tokens=1,* delims=:" %%f IN ('findstr /n . dat%zaehler2%') DO set /a count=%%f  
11.
set /a rest=%count%-7 //Variable für ausgabe ohne letzte 7 zeilen 
12.
for /f "skip=3 tokens=1,* delims=:" %%h in ('findstr /n  . dat%zaehler2%') do @(for /L %%a in (1,1,%rest%) do @if %%h==%%a echo %%j ) >>dat1  //Hier sollen die Infos ab zeile 4 bis zur 7letzten zeile in dat1 eingefügt werden 
13.
set /a zaehler2 = %zaehler2%+1 //Zaehler für die Dateien 
14.
)
Danke für die Hilfe, ich hoffe jemand versteht meine Ausführungen
Mitglied: bastla
12.12.2008 um 22:05 Uhr
Hallo brainbug84!

Schleifen lassen sich auch anders konstruieren:
01.
@echo off & setlocal 
02.
set /a Anzahl=8 
03.
set /a zaehler2=2 
04.
 
05.
:Loop 
06.
FOR /f "tokens=1,* delims=:" %%f IN ('findstr /n "^" "dat%zaehler2%"') DO set /a count=%%f  
07.
set /a bis=%count%-7 
08.
for /f "skip=3 tokens=1,* delims=:" %%i in ('findstr /n "^" "dat%zaehler2%"') do if %%i leq %bis% >>"dat1" echo %%j 
09.
set /a zaehler2+=1 
10.
if %zaehler2% leq %Anzahl% goto :Loop
Kommentare werden übrigens in Batch entweder mit REM oder mit :: eingeleitet - sollen sie auch noch an eine Codezeile angefügt werden, dann etwa so:
echo Das wird ausgegeben & REM und das nicht
Könnt ihr mir vielleicht sagen was es mit dem @ vor den anweisungen auf sich hat
Wenn Du kein "echo off" setzt, werden Befehle vor der Ausführung zunächst einmal angezeigt. Mit dem vorangestellen "@" kannst Du diese Anzeige gezielt für einzelne Befehle unterdrücken, also etwa
for /L %i in (1,1,5) do echo Zeile %i mit Vorab-Anzeige
vs
for /L %i in (1,1,5) do @echo Zeile %i ohne Vorab-Anzeige
Beide Beispiele sind (wie am einfachen "%" für die Laufvariable zu erkennen) für die Direkteingabe an der Kommandozeile gedacht.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Und Oder Verschachtelungen
gelöst Frage von grasihuepferMicrosoft Office1 Kommentar

Ich möchte folgendes realisieren: wenn(und(a1=0;b1=0;c1>d1) dann soll e1 den Wert 20 geben wenn(und(a1=0;b1=0;c1<d1) dann soll e1 den Wert 30 ...

Batch & Shell
If Else mit Verschachtelung
gelöst Frage von soritoseBatch & Shell5 Kommentare

hallo ich versuche gerade eine suche zu schreiben mit einigen IF leider bekomme ich immer nur ein Syntaxfehler und ...

Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Batch & Shell
If else Verschachtelung für Ping-Check in Shell
Frage von trallerBatch & Shell1 Kommentar

Hallo, ich möchte in dieses Script einen doppelten Ping-Check einbauen. Das ganze läuft auf einem DD-WRT Router Aktuell sieht ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 3 StundenBatch & Shell1 Kommentar

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 5 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 20 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 21 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Server-Hardware
Braucht ein Server eine Grafikkarte?
gelöst Frage von lcer00Server-Hardware14 Kommentare

Hallo zusammen, habe gerade 3 Stunden gebraucht, um herauszubekommen, dass die Remotemanagement-Console von Intel (RMM4) nur funktioniert, wenn die ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...