# Batchdatei Problem mit dem Pfad



## RE-DIK (15. Januar 2010)

Hallo Leute,

habe ein Problem mit meiner Batchdatei. Ich weiß nicht wo ich den Pfad einfügen kann damit es funktioniert. So sieht die Datei aus.

@echo off

@echo %~dp0zit.html   <--- Der Pfad wird richtig angezeigt 

set "filename=zit.html"
set "tempfile=ok.xml"

for /F "delims=" %%a in (%~dp0zit.html) do (     <------   der findet die Datei auch aber ist ein Fehler (kann syntaktisch an dieser Stelle nicht verarbeitet werden)
set text=%%a
set text=!text:ä=ae !
set text=!text:ü=ue !
set text=!text:ö=oe !
set text=!text:Ä=Ae !
set text=!text:Ü=Ue !
set text=!text:Ö=Oe !
echo !text!>>%tempfile%
)

ping -n 30 127.0.0.1>nul

del %filename%

die Batchdatei funktion wenn man %~dp0 weglässt aber wenn die die Batch mit einem anden Programm starte fehlt der Pfad wieder.

Dankeschön im voraus


----------



## deepthroat (15. Januar 2010)

Hi.

Bei mir funktioniert dein Skript fehlerfrei.

Schalte doch mal echo an und sende die genaue Ausgabe (einfach aus der Kommandozeile kopieren).

Und bitte verwende Code-Tags dafür.

Du müßtest außerdem noch die verzögerte Variablenexpansion einschalten.

Gruß


----------



## RE-DIK (15. Januar 2010)

hab das jetzt aktiviert änder aber nix.

Schreibe mal die Ausgabe rein.

C:\Users\excel\Daten>setlocalEnableDelayedExpansion
C:\Users\excel\Daten\zit.html
C:\Users\excel\Daten>set "filename=zit.html"
C:\Users\excel\Daten>set "tempfile=ok.xml"
"\excel\Daten\zit.html)" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
C:\Users\excel\Daten>

Wenn ich die Datei so manuell starte funktion sie auch bei mir aber sobald ich die mit vba öffnen lasse findet die batch datei meine zit.html nicht obwohl die im selben ordner ist.

@echo off
setlocal EnableDelayedExpansion

set "filename=zit.html"
set "tempfile=ok.xml"

for /F "delims=" %%a in (%filename%) do (
set text=%%a
set text=!text:ä=ae !
set text=!text:ü=ue !
set text=!text:ö=oe !
set text=!text:Ä=Ae !
set text=!text:Ü=Ue !
set text=!text:Ö=Oe !
echo !text!>>%tempfile%
)

del %filename%


----------



## deepthroat (15. Januar 2010)

RE-DIK hat gesagt.:


> Schreibe mal die Ausgabe rein.
> 
> C:\Users\excel\Daten>setlocalEnableDelayedExpansion
> C:\Users\excel\Daten\zit.html
> ...


Irgendwie passt da was nicht zusammen. Du hast das doch nicht wirklich abgeschrieben, oder?! Bitte *kopiere *die Ausgabe aus der Eingabeaufforderung!

Und schließe doch bitte Code und Ausgaben von Programmen in [code] ... [/code] Tags ein!


RE-DIK hat gesagt.:


> Wenn ich die Datei so manuell starte funktion sie auch bei mir aber sobald ich die mit vba öffnen lasse findet die batch datei meine zit.html nicht obwohl die im selben ordner ist.


Die Batch Datei wird aber nicht unbedingt in dem Ordner gestartet in dem sie liegt oder in dem deine Excel Datei liegt...

Gruß


----------



## RE-DIK (15. Januar 2010)

Ich bekomme das nicht hin dieses Fenster offen zulassen.

Hätte noch eine andere Idee und zwar kann man in der Batchdatei von vorne rein den Pfad angeben wo die ausgeführt werden soll?

Ich denke dies würde viel einfacher sein.


----------



## deepthroat (15. Januar 2010)

RE-DIK hat gesagt.:


> Ich bekomme das nicht hin dieses Fenster offen zulassen.


Öffne manuell eine Eingabeaufforderung.


RE-DIK hat gesagt.:


> Hätte noch eine andere Idee und zwar kann man in der Batchdatei von vorne rein den Pfad angeben wo die ausgeführt werden soll?




```
cd /d PFAD
```
Gruß


----------



## RE-DIK (15. Januar 2010)

Danke dir funktioniert

Sieht jetzt so aus

@echo off
setlocal EnableDelayedExpansion
cd /d %~dp0

set "filename=zit.html"
set "tempfile=ok.xml"

for /F "delims=" %%a in (%filename%) do (
set text=%%a
set text=!text:ä=ae !
set text=!text:ü=ue !
set text=!text:ö=oe !
set text=!text:Ä=Ae !
set text=!text:Ü=Ue !
set text=!text:Ö=Oe !
echo !text!>>%tempfile%
)

del %filename%


----------

