tommhii
Goto Top

Dateinamen an Variablenübergeben

Hallo,

ich habe eine Frage zu einen kleinen Problem ich bekomm das aber nicht hin. Ich habe einen Ordner in dem beliebig viele xml Dateien enthalten sind. Ich möchte diese dateien mittels eines Konverters alle nach einander konvertieren und dies mittels einer batch lösen. der Konverter ist eine bat Datei in der einige Parameter übergeben werden müssen wie z.B Eingabe Dateiname und Ausgabe Dateiname usw

set /a da=0
for %%i in (c:\UNKOV\*xml) do set /a da=da + 1

echo +++ Es sind %da% XML-Datei(en) vorhanden
for /l %%i in (1,1,%da%) do set Name%%~ni

wie kann ich der Konv.bat die Dateinamen übergeben ?

kann mir da jemand helfen

gruß Tommhi
.

Content-ID: 214178

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

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

bastla
bastla 13.08.2013 um 16:44:18 Uhr
Goto Top
Hallo tommhii!

Wenn Du denn unbedingt die Anzahl der XML-Dateien vorweg anzeigen willst, würde ich zu
for /f "delims=:" %%i in ('dir /b/a-d "c:\UNKOV\*.xml"^|findstr /n "^"') do set /a da=%%i
raten - für den Rest:
for %%i in ("c:\UNKOV\*.xml") do (  
    echo Machwas mit "%%i" oder auch nur mit "%%~ni"  
)
Grüße
bastla
Endoro
Endoro 13.08.2013 um 21:19:16 Uhr
Goto Top
Hallo,
kannst du mal testen:
@ECHO OFF &SETLOCAL
FOR %%a IN ("c:\UNKOV\*.xml") DO SET /a da+=1&CALL SET "name%%da%%=%%~fa"  
FOR /f "tokens=2delims==" %%a IN ('set "name"') DO (  
	ECHO machwas mit "%%~nxa" oder "%%~fa"  
)
Verwende keine = Zeichen in Dateinamen.
lg.
tommhii
tommhii 14.08.2013 um 11:14:12 Uhr
Goto Top
Hallo ,

danke erstmal für die schnelle Antwort.
@ Endoro das script klappt super, aber eine Frage hab ich noch was meinst du für Zeichen im Dateinamen. Sonderzeichen oder zählen auch + - _ dazu ?
also danke nochmal für die schnelle Antwort
@ bastla klappt auch super bis auf das die Dateiendung im Dateinamen fehlt, ich brauche auch die Dateiendung an dem Namen, gibt es noch eine Möglichkeit das zu ändern?
Danke auch Dir nochmal für die schnelle Antwort

gruß Tommhi
bastla
bastla 14.08.2013 um 11:22:04 Uhr
Goto Top
Hallo tommhii!
bis auf das die Dateiendung im Dateinamen fehlt
Hatte ich so von Deinem Ansatz oben übernommen - Du brauchst aber nur auf "%%~nxi" (also neben Name soll auch Extension verwendet werden) zu ändern ...

Grüße
bastla
112778
112778 14.08.2013 aktualisiert um 12:26:58 Uhr
Goto Top
@ Endoro

Zitat von @Endoro:
kannst du mal testen:

Deine Tricks sind nicht so der Renner. Das Environment ist auf 32767 Byte für einen Prozess und bis inc. XP und Server 2003 auf den gleichen Gesamtwert begrenzt. Wenn genügend Dateien vorhanden sind, gibt's nen crash.
Außerdem ergibt
FOR /f "tokens=2delims==" %%a ...  

wegen des fehlenden Space vor delims einen Syntaxerror.

Gruß
tommhii
tommhii 14.08.2013 um 12:45:19 Uhr
Goto Top
Hallo bastla,

ja okay hab ich wohl übersehen , danke für den Hinweis.


Gruß
tommhi