sugram
Goto Top

FOR Schleife läuft nicht

Hallo


Ich glaube ich sehe den Wald vor lauter Bäumen nicht.
Aber ich bekomme die FOR Schleife nicht zum laufen.
Ziel ist, aus einem Verzeichnis in mehreren html Files etwas auszulesen.

Aktuell sieht meine FOR so aus

set "Ziel=C:\temp"  
pushd %ziel%

for /f  %%i in ('dir /b  *.html') do call :Process %%i  
goto :exit

:Process 
for /f %%a in ('type %1') do (echo %%a")  
goto :eof

:exit
@echo test

Aktuell erhalte ich hier dann in der Console die Meldung

c:\temp>for /F %i in ('dir /b c:\temp\*.html') do call :Process %i  

c:\temp>call :Process 1_Stp01-20160608-081803181.html
The syntax of the command is incorrect.

Aber ich komme aktuell nicht drauf weshalb er hier nicht weiterarbeitet.

Content-Key: 306657

Url: https://administrator.de/contentid/306657

Printed on: April 18, 2024 at 05:04 o'clock

Member: Arano
Arano Jun 09, 2016 updated at 11:29:12 (UTC)
Goto Top
Hi,

habe kein Windows darum ein Schuss ins Blaue:
Das Anführungszeichen in Zeile 8 Zeichen 38.
Das sieht für mich an dieser stelle jedenfalls syntaktisch falsch aus.
Oder nach dem "echo" fehlt noch eines !?
Da über die Variable %%a eine Zeichenkette ausgegeben werden soll, würde ich sie bevorzugt in Anführungszeichen stellen.

~Arano
Member: Kraemer
Kraemer Jun 09, 2016 updated at 11:45:02 (UTC)
Goto Top
Habe gerade keine Lust mir das genau anzusehen - aber auf die Schnelle folgende Fehler:


 set "Ziel=C:\temp"  
muss
 set Ziel="C:\temp"  


 for /f  %%i in ('dir /b  *.html') do call :Process %%i  
muss
 for /f  %%i in ('dir /b  *.html') do call:Process %%i  
Member: Arano
Solution Arano Jun 09, 2016 at 12:13:36 (UTC)
Goto Top
Nee, stimmt beides nicht !
Kann vielleicht aber muss nicht.

Hier im Forum sieht man die Definition der Variablen oft in der Form: set "myVar=Value" z.B. vom User @Biber
Ein Grund dafür dürfte/könnte das Löschen eines Variablenwertes sein: set "myVar=" ohne die Anführungszeichen schreibt man schnell noch mal ein Leerzeichen in die Variable und schon sucht man sich nen Wolf weil man es nicht sehen kann.

Und zu letzterem kann ich nur sagen das ich das so noch nie gesehen habe. Kann funktionieren... ist aber auch kein muss.

http://fisibits.de/2014/05/batch-programmierung-variablen/
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehle#CALL

~Arano
Member: sugram
sugram Jun 09, 2016 updated at 13:26:59 (UTC)
Goto Top
Erstmal vielen Dank.

die Zeichen bei 'dir /b ... ' sind schon richtig.
Das " hinter dem %%a war zuviel. Das kommt vom rumtesten face-wink

Ich habe es abgeändert, allerdings ohne Erfolg.

set Ziel="c:\temp\"   

pushd %ziel%

for /f  %%i in ('dir /b  *.html') do call:Process %%i  

goto :eof



So, fragt mich nicht warum, aber nun gehts face-wink

@echo on
set "Ziel=c:\temp\"   

pushd %ziel%

for /f  %%i in ('dir /b *.html') do call:Process %%i  
goto :exit

:Process 
for /f "delims=" %%a in ('"type %1 | findstr TimeStampCust "') do (echo %%a >>BC)  
goto :eof

:exit
popd