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 BATCH: Fehler beim Schleifenzähler der FOR-Schleife

Mitglied: leowatzn

leowatzn (Level 1) - Jetzt verbinden

13.08.2019, aktualisiert 08:41 Uhr, 197 Aufrufe, 8 Kommentare, 1 Danke

Hallo zusammen,
bei meinem Batch code soll folgendes passieren:

Abfrage Ordner anzahl & die maximale Anzahl der sich darin befindenden Dateien.
Alle Dateien aus allen Ordnern sollen mittels FOR von \User\Ordner\*1-x*\ nach \User\Test\ kopiert.

01.
REM @ECHO OFF
02.
CHCP 1252
03.

04.
SET /P e = "Anzahl der Ordner: "
05.
SET /P m = "Maximale Anzahl der Dateien pro Ordner: "
06.

07.
FOR /L %%o IN (1,1,%%e) DO ( 
08.
	FOR %%f IN (C:\User\Ordner\%%o\*.txt) DO COPY %%f C:\User\Test\
09.
)
10.
PAUSE
Hier stellt sich schon das erste Problem:
Die Dateien werden nicht kopiert. Wenn man die Ordner einzeln angibt sprich,
01.
FOR %%f IN (C:\User\ordner\1\*.txt) DO COPY %%f C:\User\Test\
02.
FOR %%f IN (C:\User\ordner\2\*.txt) DO COPY %%f C:\User\Test\
03.
...
funktioniert es.


Nun zu Problem Nr. 2:
Hier soll in jede Datei (welche nun bereits in C:\User\Test\ liegen sollen) der Dateiname unter diesem Prinzip eingefügt werden
und der Inhalt der Datei ausgegeben werden.
01.
FOR /L %%i IN (1,1,%%e) DO (
02.
	FOR /L %%j IN (1,1,%%m) DO (
03.
		FOR /F %%f IN (C:\User\Test\%%i.%%j.txt) DO (
04.
			ECHO  %%i.%%j.txt >> C:\User\Test\%%i.%%j.txt
05.
			ECHO %%f %%i %%j
06.
		)
07.
	)
08.
)
09.
PAUSE
Bei der Ausgabe sollte nun also: (bei 5 Ordnern mit jeweils 5 Dateien)
01.
<inhalt> 1 1
02.
<inhalt> 1 2
03.
...
04.
<inhalt> 1 5 
05.
<inhalt> 2 1
06.
...
07.
<inhalt> 2 5
08.
<inhalt> 3 1
09.
...
10.
<inhalt> 3 5
11.
<inhalt> 4 1
12.
...
13.
<inhalt> 4 5
14.
<inhalt> 5 1
15.
...
16.
<inhalt> 5 5


Die Ausgabe ist jedoch:

01.
<inhalt> 1 1
02.
<inhalt> 1 2
03.
...
04.
<inhalt> 1 5 //bis hier ist noch alles korrekt
05.
<inhalt> 2 1
06.
...
07.
<inhalt> 2 4 //!!
08.
<inhalt> 3 1
09.
...
10.
<inhalt> 3 4 //!!
11.
<inhalt> 4 1
12.
...
13.
<inhalt> 4 4 //!!
14.
<inhalt> 5 1
15.
...
16.
<inhalt> 5 4 //!!
Woran kann das liegen? (Betriebssystem: Windows 10 Enterprise, ausgabe in CMD)
LG leowatzn
Mitglied: 140777
LÖSUNG 13.08.2019, aktualisiert um 11:36 Uhr
Da sind ja auch diverse Fehler in deinem Skript, angefangen an fehlerhaftem Zuweisen zu einer Variablen bis hin zu falschen Verwendung der nicht existenten Variablen.
01.
@ECHO OFF &setlocal ENABLEDELAYEDEXPANSION
02.
CHCP 1252
03.

04.
SET /P anzahl="Anzahl der Ordner: "
05.
SET /P max="Maximale Anzahl der Dateien pro Ordner: "
06.

07.
FOR /L %%x IN (1,1,%anzahl%) DO (
08.
  set cnt=1
09.
  for %%a IN ("C:\User\Ordner\%%x\*.txt") DO (
10.
    if !cnt! LEQ %max% (
11.
        COPY "%%a" "C:\User\Test\"
12.
        echo %%x-!cnt!.txt >>"C:\User\Test\%%~nxa"
13.
        type "C:\User\Test\%%~nxa"
14.
        set /a cnt+=1
15.
    )
16.
  )
17.
)
Bitte warten ..
Mitglied: leowatzn
13.08.2019, aktualisiert um 11:09 Uhr
Danke für deine Antwort.
Ich habe deinen Code getestet, jedoch tut sich nach
Zitat von 140777:
01.
SET /P anzahl="Anzahl der Ordner: "
02.
SET /P max="Maximale Anzahl der Dateien pro Ordner: "
nichts mehr. Auch bei deaktivierung von @echo off wird nichts angezeigt was auf den Fehler hinweist,
das Programm wird lediglich beendet.

Mit den Variablen kenne ich mich kaum aus, habe natürlich im Internet nachgeschlagen finde aber nichts Nützliches.

lg
Bitte warten ..
Mitglied: 140777
13.08.2019, aktualisiert um 11:18 Uhr
Nur ne Klammer beim Kopieren vergessen ist oben nachgetragen.
Bitte warten ..
Mitglied: leowatzn
13.08.2019 um 11:30 Uhr
Danke für die Korrektur! - Läuft einwandfrei.

Weißt du evt. noch etwas zu Problem Nr.2 ?
01.
FOR /L %%i IN (1,1,%%e) DO (
02.
	FOR /L %%j IN (1,1,%%m) DO (
03.
		FOR /F %%f IN (C:\User\Test\%%i.%%j.txt) DO (
04.
			ECHO  %%i.%%j.txt >> C:\User\Test\%%i.%%j.txt
05.
			ECHO %%f %%i %%j
06.
		)
07.
	)
08.
)
09.
PAUSE
Genaueres kannst du in der obigen Fragestellung nachlesen.
Bitte warten ..
Mitglied: leowatzn
13.08.2019, aktualisiert um 11:52 Uhr
Selbes Problem wie im Original, nur dass nun die *.5-er Dateien (bis auf 1.5.txt) nicht mehr überhaupt nicht
angezeigt werden, sondern stattdessen folgendes angezeigt wird:

1 Datei(en) kopiert.
<inhalt>㈠㔮琮瑸ഠ
Bitte warten ..
Mitglied: 140777
LÖSUNG 13.08.2019, aktualisiert um 12:39 Uhr
Dann haben deine Dateien UTF oder eine andere Kodierung wie Unicode & Co also entweder Codepage passend setzen oder besser gleich die Powershell nutzen wenn man mit solchen Dateien hantiert...
Bitte warten ..
Mitglied: leowatzn
13.08.2019 um 13:27 Uhr
Dies ist tatsächlich der Fall.
Danke für deine Hilfe!

LG leowatzn
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
FOR Loop Variablen ( Batch )
gelöst Frage von clragonBatch & Shell2 Kommentare

Hey Leute. Ich schreib grad an einem script rum und hab folgendes Problem: Die Variable eines FOR loop meines ...

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
Batch Variablen in for-Schleife
gelöst Frage von Dacki1107Batch & Shell2 Kommentare

Hallo Liebe Administratoren Ich kämpfe mit einem kleinen Problemchen und hoffe das Ihr mir helfen könnt. Ich versuche eine ...

Batch & Shell
Batch - Hilfe bei FOR-Schleife
gelöst Frage von makroll10Batch & Shell8 Kommentare

Hallo, aus einer Access-Datenbank heraus rufe ich per VBA den u.a. Batch mit den Parametern: Reports!UB_System!Pfad ("C:\Users\User\Documents\Polar\") und Reports!UB_Polar!hrmexport1 ...

Neue Wissensbeiträge
Windows 10

"Windows 10 Pro V1903: Gruppenrichtlinie "Telemetrie zulassen" aktivierbar?"

Tipp von Snowbird vor 6 StundenWindows 101 Kommentar

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 - Jetzt in Deutsch verfügbar! (Windows 10 1903 Support)

Tipp von TrinXx vor 1 TagSicherheits-Tools1 Kommentar

Moin! Nach wochenlangem Warten wird Trend Micro das SP1 für WFBS 10 voraussichtlich am 26.08.19 veröffentlichen. Ich habe das ...

Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 3 TagenHyper-V7 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 3 TagenServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Heiß diskutierte Inhalte
Server
Ein Server ins Haus stellen. Was brauche ich dafür?
Frage von JoschiTomServer15 Kommentare

Hallo Community, ich spiele mit dem Gedanken eine Server mir zu holen. Was brauche ich dafür? Und wie sind ...

Windows Server
Ist es möglich, eine deutsche W2016 Installation mit einer UK-Lizenz zu aktivieren?
gelöst Frage von keine-ahnungWindows Server10 Kommentare

Moin at all, ist ja noch Freitag. Ich habe hier noch zwei UK OEM W2016 Standard Pakete rumfliegen Muss ...

Batch & Shell
Mittels SED Text ersetzen in Anführungszeichen
gelöst Frage von nekronBatch & Shell9 Kommentare

Moin … bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen :) ich habe ...

LAN, WAN, Wireless
Mikrotik Gast-Wlan keine Verbindung zum Internet?
Frage von dirkschwarzLAN, WAN, Wireless8 Kommentare

Guten Morgen, habe ein wahrscheinlich einfaches Problem, bei dem ich aber nicht wirklich weiter komme Ich möchte ein Gast-Wlan ...