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

Verschachtelungen mit for schleifen

Frage Entwicklung Batch & Shell

Mitglied: brainbug84

brainbug84 (Level 1) - Jetzt verbinden

12.12.2008, aktualisiert 22:05 Uhr, 2980 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
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
gelöst Fehler in Schleife (2)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
For Schleife in einer .sh Datei (4)

Frage von CrystalFlake zum Thema Batch & Shell ...

Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (21)

Frage von zorlayan zum Thema Windows 10 ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...

Netzwerkgrundlagen
Pro Contra "echtes Subnetting" VLSM (12)

Frage von killing.Apfelkuchen zum Thema Netzwerkgrundlagen ...

Voice over IP
Über Fritzfax over IP gehen nur einige Faxe (11)

Frage von shearer9 zum Thema Voice over IP ...