Ersetzen der dritten Zeile mit einem fest definierten Text und Auslesen eines Datums aus Textzeile
Hallo an alle Forenmitglieder und freundlichen Helfer des Forums!
Ich bekomme jeden Tag eine Datei aus einem Bankenprogramm, dass ich in ein Buchhaltungsprogramm importieren möchte.
Dabei muss eine bestimmte Zeile dieser Textdatei mit einem fest definierten Wert überschrieben werden, damit das Buchhaltungsprogramm keine doppelten Kontoauszüge moniert.
Außerdem möchte ich das Datum, welches sich ebenfalls in einer Zeile der Importdatei befindet, auslesen und danach automatisch an den Dateinamen hängen und die modifizierte Datei abspeichern.
Über Google und auch mit der Suchfunktion des Forums bin ich leider nicht fündig geworden.
Ich möchte das Problem mit Hilfe von Windows Bordmitteln (BATCH-Datei) lösen, bin aber über die üblichen BATCH-Befehle hinaus nicht so sehr fit darin.
Die Importdatei sieht so aus:
:20:STARTUMS
:25:20050815/123456789
:28C:00010/001
:60F:C110531EUR1234,99
:61:1105310531CR219,01NTRFNONREF
:86:051?00UEBERWEISUNG?100000123454678987
:61:110531sdkjfghsdfjkh,9NTRFNONREF
:86:051?00UEBERWEISUNG?100000sflkvjasjklfhjklasdhf
:61:110531053jkshdfjkasdhfjkhsdjkfh
:86:051?00UEBERWEISUNG?100000skdfajksgfkasgdfag
:61:1105310ysömfgkasjasjasdklögjakls
:86:051?00UEBERWEISUNG?100000asdfzsuiadfzuiasfz
:62F:C110531EUR1asdlifhasdjl
-
Relevant sind nur die
Zeile 3 :28C:00010/001 (Wert, der überschrieben werden soll)
Zeile 4 :60F:C110531EUR1234,99 (Datumsangabe zum Auslesen und an die modifizierte Datei hängen)
Die Zeile 3 soll dabei immer mit dem Wert
:28C:00000/001
überschrieben werden.
Die Datei
123456789_BANK.sta
soll anschließend so aussehen:
123456789_BANK_110531.sta
Alle anderen Werte sollen natürlich unverändert bleiben.
Kann mir da jemand helfen?
Ich bekomme jeden Tag eine Datei aus einem Bankenprogramm, dass ich in ein Buchhaltungsprogramm importieren möchte.
Dabei muss eine bestimmte Zeile dieser Textdatei mit einem fest definierten Wert überschrieben werden, damit das Buchhaltungsprogramm keine doppelten Kontoauszüge moniert.
Außerdem möchte ich das Datum, welches sich ebenfalls in einer Zeile der Importdatei befindet, auslesen und danach automatisch an den Dateinamen hängen und die modifizierte Datei abspeichern.
Über Google und auch mit der Suchfunktion des Forums bin ich leider nicht fündig geworden.
Ich möchte das Problem mit Hilfe von Windows Bordmitteln (BATCH-Datei) lösen, bin aber über die üblichen BATCH-Befehle hinaus nicht so sehr fit darin.
Die Importdatei sieht so aus:
:20:STARTUMS
:25:20050815/123456789
:28C:00010/001
:60F:C110531EUR1234,99
:61:1105310531CR219,01NTRFNONREF
:86:051?00UEBERWEISUNG?100000123454678987
:61:110531sdkjfghsdfjkh,9NTRFNONREF
:86:051?00UEBERWEISUNG?100000sflkvjasjklfhjklasdhf
:61:110531053jkshdfjkasdhfjkhsdjkfh
:86:051?00UEBERWEISUNG?100000skdfajksgfkasgdfag
:61:1105310ysömfgkasjasjasdklögjakls
:86:051?00UEBERWEISUNG?100000asdfzsuiadfzuiasfz
:62F:C110531EUR1asdlifhasdjl
-
Relevant sind nur die
Zeile 3 :28C:00010/001 (Wert, der überschrieben werden soll)
Zeile 4 :60F:C110531EUR1234,99 (Datumsangabe zum Auslesen und an die modifizierte Datei hängen)
Die Zeile 3 soll dabei immer mit dem Wert
:28C:00000/001
überschrieben werden.
Die Datei
123456789_BANK.sta
soll anschließend so aussehen:
123456789_BANK_110531.sta
Alle anderen Werte sollen natürlich unverändert bleiben.
Kann mir da jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167360
Url: https://administrator.de/forum/ersetzen-der-dritten-zeile-mit-einem-fest-definierten-text-und-auslesen-eines-datums-aus-textzeile-167360.html
Ausgedruckt am: 20.05.2025 um 14:05 Uhr
25 Kommentare
Neuester Kommentar
Hallo hamburgrulez,
mein Vorschlag zur Lösung des Problems:
Das Icon der Quelldatei kann auf das Icon des Batchscripts gezogen werden. Die Ausgabedatei wird im Verzeichnis der Quelldatei erstellt.
Es wird davon ausgegangen, dass in Zeile 4 der Quelldatei vor dem Datum immer ein oder mehrere Zeichen stehen, die keine Zahl sind und nach dem Datum als erstes wieder ein Zeichen steht, was keine Zahl ist. Bei der Ausgabe wird davon ausgegangen, dass alle Zeilen mit einem Doppelpunkt anfangen.
Fragen zur Funktionsweise werden gerne beantwortet.
@bastla: Wenn man Laufvariablen innerhalb von
Gruß
Friemler
mein Vorschlag zur Lösung des Problems:
@echo off
setlocal
set "SrcFile=%~1"
set "DestFileName=%~dpn1"
set "DestFileExt=%~x1"
set "ReplaceStr=:28C:00000/001"
::Datum extrahieren
for /f "eol= tokens=1,2* delims=:" %%j in ('findstr /n "^" "%SrcFile%"') do (
if "%%j" equ "4" (
for /f "eol= tokens=1* delims=0123456789" %%a in ("%%l") do (
set "Line=%%l"
set "LeadingChars=%%a"
set "TrailingChars=%%b"
call :GetDate
)
)
)
::Zieldatei schreiben
for /f "eol= tokens=1* delims=:" %%k in ('findstr /n "^" "%SrcFile%"') do (
if "%%k" neq "3" (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\:%%l
) else (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\%ReplaceStr%
)
)
exit /b
::Hilfs-Prozedur
:GetDate
call set "aDate=%%Line:*%LeadingChars%=%%"
call set "aDate=%%aDate:%TrailingChars%=%%"
exit /b
Das Icon der Quelldatei kann auf das Icon des Batchscripts gezogen werden. Die Ausgabedatei wird im Verzeichnis der Quelldatei erstellt.
Es wird davon ausgegangen, dass in Zeile 4 der Quelldatei vor dem Datum immer ein oder mehrere Zeichen stehen, die keine Zahl sind und nach dem Datum als erstes wieder ein Zeichen steht, was keine Zahl ist. Bei der Ausgabe wird davon ausgegangen, dass alle Zeilen mit einem Doppelpunkt anfangen.
Fragen zur Funktionsweise werden gerne beantwortet.
@bastla: Wenn man Laufvariablen innerhalb von
FOR
-Schleifen mit ECHO
ausgibt, kann der Inhalt der Laufvariablen sogar &, %, <
und >
enthalten, zumindest unter Windows 7, XP nicht getestet.Gruß
Friemler
@Friemler
... und mit "
) ...
... nur weiß das vermutich der TE nicht - wenn daher schon eine umfangreiche Beschreibung (erfreulicher Weise auch gleich einmal mit Beispieldaten
) erfolgt, hätte ich mir diese Information ebenso erwartet wie etwa einen Hinweis, dass das gesuchte Datum immer an Position 6 beginnt (weil der Teil davor gleich bleibt oder zumindest immer die gleiche Struktur aufweist) ...
Grüße
bastla
... und mit "
delayedexpansion
" sowieso (und nein, VBS erwähne ich gar nicht ... nur weiß das vermutich der TE nicht - wenn daher schon eine umfangreiche Beschreibung (erfreulicher Weise auch gleich einmal mit Beispieldaten
Grüße
bastla
Hallo Friemler!
"
Grüße
bastla
"
delayedexpansion
" würde ich auch nur verwenden, wenn eine Stringmanipulation erforderlich ist (und auch da erst bei der Ausgabe) - also etwa (ungetestet) für die Datumszeile, um die Zeichen 7-12 zu isolieren:...
set "Zeile=%%i"
setlocal enabledelayedexpansion
echo !Zeile:~6,6!
endlocal
...
bastla
Hallo hamburgrulez,
die Funktionsweise erkläre ich Dir gerne, allerdings nicht als Quelltextkommentare, da das, wie Du siehst, ewas umfangreicher wird und das Script kaum noch lesbar wäre.
Wenn Du das Icon der Quelldatei auf das Icon des Batchfiles ziehst, wird der Dateiname der Quelldatei inkl. Pfad dem Batchfile als Parameter übergeben. Der erse Parameter eines Batchfiles lässt sich über
In Zeile 6 steht
Der
Die Ausgabe von
Wegen 1. kann ich also in Zeile 15 ermitteln, ob gerade die vierte Dateizeile eingelesen wurde (
In den Zeilen 17 bis 19 werden die Laufvariablen an normale Variablen zugewiesen. Um es anhand der beispielhaften Daten aus Deinem Eingangsposting zu erklären:
Dann wird das Unterprogramm
Wegen dem Stern in
=>
Dadurch könnten auch mehrere Zeichen vor dem Datum stehen, allerdings dürfen keine Ziffern dabei sein .
Zeile 42 ist ein ähnlicher Ausdruck, enthält jedoch keinen Stern. Deshalb wird
=>
Dann geht es mit
In Zeile 27 wird Deine Datei nochmals eingelesen. Wegen
In Zeile 28 wird geprüft, ob gerade eine andere Zeile als Zeile 3 eingelesen wurde (
Wenn Zeile 3 eingelesen wurde, wird im
Der Backslash (
Beim
Du siehst ja, viel Erklärung für ein paar Zeilen (kompakten) Code. Deshalb habe ich eigentlich mein Tutorial zur FOR-Schleife geschrieben. Bei jedem Batchneuling solche Romane zu schreiben ist lästig. Aber Du hast Dich hier höflich und freundlich verhalten, deshalb eine Ausnahme. Bei weiteren Fragen (die evtl. auch erst bei Anpassungen des Codes auftreten) und im Tuorial schon beantwortet werden, kann ich das aber nicht nochmal machen.
Gruß
Friemler
die Funktionsweise erkläre ich Dir gerne, allerdings nicht als Quelltextkommentare, da das, wie Du siehst, ewas umfangreicher wird und das Script kaum noch lesbar wäre.
Wenn Du das Icon der Quelldatei auf das Icon des Batchfiles ziehst, wird der Dateiname der Quelldatei inkl. Pfad dem Batchfile als Parameter übergeben. Der erse Parameter eines Batchfiles lässt sich über
%1
ansprechen, der zweite über %2
usw. bis %9
. An weitere Parameter kommt man dann nur noch nach Verwendung des Befehls SHIFT
heran, durch den %1
mit dem Wert, den vorher %2
hatte, belegt wird. %9
ist dann der zehnte Parameter. SHIFT
lässt sich auch mehrfach anwenden.In Zeile 6 steht
set "SrcFile=%~1"
. Die Tilde bewirkt, das evtl. umgebende Anführungszeichen vom ersten Parameter entfernt werden. Das set "DestFileName=%~dpn1"
in Zeile 7 extrahiert Laufwerk (d), Pfad (p) und Name (n) ohne Dateierweiterung aus dem ersten Parameter. set "DestFileExt=%~x1"
in Zeile 8 extrahiert die Dateierweiterung (x).Der
FINDSTR
-Befehl in Zeile 14 sucht wegen "^"
nach allen Zeilen mit einem Anfang, findet also alle Zeilen. Wegen /n
setzt er vor jede gefundene Zeile die Zeilennummer mit einem nachfolgenden Doppelpunkt .Die Ausgabe von
FINDSTR
wird von der FOR
-Schleife in ihre Bestandteile (Tokens) zerlegt. Mit eol=
wird verhindert, dass das standardmäßig als Zeilenendezeichen (EOL=End Of Line) definierte Semikolon die Verarbeitung einer Dateizeile abbricht, indem als EOL-Zeichen nichts definiert wird. Wegen delims=:
wird der Doppelpukt als Trennzeichen zwischen den Bestandteilen interpretiert. Wegen tokens=1,2*
werden von FOR
drei Tokens zur Verfügung gestellt:- Die Zeilennummer in der Laufvariablen
%%j
. Danach kommen zwei Doppelpunkt (Trennzeichen), einer vonFINDSTR
erzeugt, der zweite ist Inhalt Deiner Datei. - Die automatisch erzeugte Laufvariable
%%k
enthält das, was nach dem initialen Doppelpunkt am Zeilenanfang in Deiner Datei steht bis zum zweiten Doppelpunkt (exklusiv). - Die ebenfalls automatisch wegen dem Stern erzeugte Laufvariable
%%l
enthält alles nach dem zweiten Doppelpunkt einer Zeile Deiner Datei.
Wegen 1. kann ich also in Zeile 15 ermitteln, ob gerade die vierte Dateizeile eingelesen wurde (
equ
heißt equal -> gleich). Die wird dann von der FOR
-Schleife in Zeile 16 in ihre Bestandteile (Tokens) zerlegt. Als Trennzeichen werden hier wegen delims=0123456789
alle Ziffern definiert. Wegen tokens=1*
sind also in der Laufvariablen %%a
alle Zeichen vor dem Datum gepeichert und in der automatisch erzeugten Laufvariablen %%b
der Rest der Zeile nach dem Datum. Aus diesem Grund habe ich auch geschrieben:Zitat von @Friemler:
Es wird davon ausgegangen, dass in Zeile 4 der Quelldatei vor dem Datum immer ein oder mehrere Zeichen stehen, die keine Zahl sind und nach dem Datum als erstes wieder ein Zeichen steht, was keine Zahl ist.
Es wird davon ausgegangen, dass in Zeile 4 der Quelldatei vor dem Datum immer ein oder mehrere Zeichen stehen, die keine Zahl sind und nach dem Datum als erstes wieder ein Zeichen steht, was keine Zahl ist.
In den Zeilen 17 bis 19 werden die Laufvariablen an normale Variablen zugewiesen. Um es anhand der beispielhaften Daten aus Deinem Eingangsposting zu erklären:
- %Line% enthält
C110531EUR1234,99
- %LeadingChars% enhält
C
- %TrailingChars% enthält
EUR1234,99
Dann wird das Unterprogramm
GetDate aufgerufen
.Wegen dem Stern in
call set "aDate=%%Line:*%LeadingChars%=%%"
in Zeile 41 wird vom Anfang von Line
alles abgeschnitten (oder besser gesagt, durch nichts ersetzt), was LeadingChars
entspricht und alles, was davor steht.=>
aDate
enthält jetzt 110531EUR1234,99
Dadurch könnten auch mehrere Zeichen vor dem Datum stehen, allerdings dürfen keine Ziffern dabei sein .
Zeile 42 ist ein ähnlicher Ausdruck, enthält jedoch keinen Stern. Deshalb wird
aDate
nach allen Stellen abgesucht, die TrailingChars
entsprechen und diese Stellen durch nichts ersetzt.=>
aDate
enthält jetzt 110531
Dann geht es mit
exit /b
zurück ins Hauptprogramm (die FOR
-Schleife). Wegen Zeile 15 wird das ganze nur für Zeile 4 Deiner Datei ausgeführt, der Rest wird überlesen.In Zeile 27 wird Deine Datei nochmals eingelesen. Wegen
tokens=1*
enthält nun die Laufvariable %%k
die Zeilenummer in der Datei und die automatisch erzeugte Laufvariable %%l
alles nach dem initialen Doppelpunkt jeder Dateizeile. Wegen delims=:
ist ja wieder der Doppelpunkt als Trennzeichen zwischen den Tokens definiert.In Zeile 28 wird geprüft, ob gerade eine andere Zeile als Zeile 3 eingelesen wurde (
neq
heißt not equal -> nicht gleich). Wenn ja, wird der initiale Doppelpunkt (der wurde ja herausgefiltert) und dann der Rest der Zeile (%%l
) wegen >>
an die Datei angehängt , deren Name in %DestFilename%
gespeichert ist (natürlich ergänzt um _%aDate%
und die Dateierweiterung).Wenn Zeile 3 eingelesen wurde, wird im
ELSE
-Zweig in Zeile 31 der Ersetzungsstring aus %ReplaceString%
an die Datei angehängt.Der Backslash (
\
) nach dem ECHO
-Befehl in Zeile 31 würde, falls %ReplaceString%
leer ist, eine Leerzeile in die Datei schreiben.Hintergrund: Wenn %ReplaceString%
leer ist, würde der Befehl ohne den Backslash als echo
übersetzt, was dann den Text "ECHO ist eingeschaltet (On).
" in die Datei schreiben würde. Ein kleines Schmankerl des Praktikanten, der die Shell programmiert hat. Beim
ECHO
-Befehl in Zeile 29 ist der Backslash eigentlich überflüssig, da ja immer mindestens ein Doppelpunkt in die Datei geschrieben wird.Du siehst ja, viel Erklärung für ein paar Zeilen (kompakten) Code. Deshalb habe ich eigentlich mein Tutorial zur FOR-Schleife geschrieben. Bei jedem Batchneuling solche Romane zu schreiben ist lästig. Aber Du hast Dich hier höflich und freundlich verhalten, deshalb eine Ausnahme. Bei weiteren Fragen (die evtl. auch erst bei Anpassungen des Codes auftreten) und im Tuorial schon beantwortet werden, kann ich das aber nicht nochmal machen.
Gruß
Friemler
Hallo hamburgrulz,
klar, lässt sich machen. Ersetze die Zeilen 28 bis 30 durch
Gruß
Friemler
[EDIT]
Hm, Mist. Damit wird ab Dateizeile 5 auf keinen Fall ein initialer Doppelpunkt geschrieben! Da der Doppelpunkt ein Trennzeichen ist, ist diese Anforderung auch nicht so einfach zu erfüllen. Muss ich nochmal drüber meditieren.
[/EDIT]
klar, lässt sich machen. Ersetze die Zeilen 28 bis 30 durch
if "%%k" neq "3" (
if "%%k" leq "4" (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\:%%l
) else (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\%%l
)
) else (
Gruß
Friemler
[EDIT]
Hm, Mist. Damit wird ab Dateizeile 5 auf keinen Fall ein initialer Doppelpunkt geschrieben! Da der Doppelpunkt ein Trennzeichen ist, ist diese Anforderung auch nicht so einfach zu erfüllen. Muss ich nochmal drüber meditieren.
[/EDIT]
Hallo hamburgrulez,
siehe das Edit meines vorletzten Posting.
Dass ab Zeile 10 wieder Doppelpunkte auftauchen liegt daran, dass die Zeilennummern wegen der umgebenden Anführungszeichen als Strings verglichen werden, nicht als Zahlen. Deshalb ist 10 kleiner 4. Damit es richtig wird, müsste man 10 und 04 vergleichen.
Aber entferne mal die Anführungszeichen bei allen Vergleichen von Zeilennummern mit konstanten Zahlen, sollte dann auch gehen. Um das Übernehmen von vorhandenen Doppelpunkten ab Zeile 5 kümmere ich mich noch.
Gruß
Friemler
siehe das Edit meines vorletzten Posting.
Dass ab Zeile 10 wieder Doppelpunkte auftauchen liegt daran, dass die Zeilennummern wegen der umgebenden Anführungszeichen als Strings verglichen werden, nicht als Zahlen. Deshalb ist 10 kleiner 4. Damit es richtig wird, müsste man 10 und 04 vergleichen.
Aber entferne mal die Anführungszeichen bei allen Vergleichen von Zeilennummern mit konstanten Zahlen, sollte dann auch gehen. Um das Übernehmen von vorhandenen Doppelpunkten ab Zeile 5 kümmere ich mich noch.
Gruß
Friemler
Hallo hamburgrulez,
hier jetzt nochmal das komplette Script in einer angepassten Version:
Tjaa, da gibt es wieder was zu erklären
.
Die Methode des Einlesens der Quelldatei bei der Ausgabe hat sich nicht geändert (Zeile 27). Allerdings ließt diese
In Zeile 30 wird der Zeileninhalt, inkl. Zeilennummer mit nachfolgendem Doppelpunkt (stammt von
"am Zeilenanfang",
Kleine Änderung der Anforderungen => Du musst noch mehr komplizierten Batchscript-Code verstehen.
Das mit den fehlerhaften Zahlenvergleichen tut mir leid, verschusselt und nicht richtig getestet.
Gruß
Friemler
hier jetzt nochmal das komplette Script in einer angepassten Version:
@echo off
setlocal
set "SrcFile=%~1"
set "DestFileName=%~dpn1"
set "DestFileExt=%~x1"
set "ReplaceStr=:28C:00000/001"
::Datum extrahieren
for /f "eol= tokens=1,2* delims=:" %%j in ('findstr /n "^" "%SrcFile%"') do (
if %%j equ 4 (
for /f "eol= tokens=1* delims=0123456789" %%a in ("%%l") do (
set "Line=%%l"
set "LeadingChars=%%a"
set "TrailingChars=%%b"
call :GetDate
)
)
)
::Zieldatei schreiben
for /f "eol= delims=" %%l in ('findstr /n "^" "%SrcFile%"') do (
for /f "eol= tokens=1* delims=:" %%a in ("%%l") do (
if %%a neq 3 (
(echo\%%l|findstr "^[0-9]*::" > NUL) && (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\:%%b
) || (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\%%b
)
) else (
>>"%DestFileName%_%aDate%%DestFileExt%" echo\%ReplaceStr%
)
)
)
exit /b
::Hilfs-Prozedur
:GetDate
call set "aDate=%%Line:*%LeadingChars%=%%"
call set "aDate=%%aDate:%TrailingChars%=%%"
exit /b
Tjaa, da gibt es wieder was zu erklären
Die Methode des Einlesens der Quelldatei bei der Ausgabe hat sich nicht geändert (Zeile 27). Allerdings ließt diese
FOR
-Schleife jetzt erstmal die gesamte Zeile inkl. Zeilennummer und nachfolgendem Doppelpunkt ein und stellt das in %%l
zur Verfügung. Erst die FOR
-Schleife in Zeile 28 führt die Zerlegung in Tokens anhand des Doppelpunkts als Trennzeichen durch. Die Zeilennummer ist jetzt in %%a
gespeichert, der Zeileninhalt in %%b
, jedoch ohne initialen Doppelpunkt.In Zeile 30 wird der Zeileninhalt, inkl. Zeilennummer mit nachfolgendem Doppelpunkt (stammt von
FINDSTR
in Zeile 27) ausgegeben. Dann wird ein weiterer FINDSTR
-Befehl angewiesen nachzuschauen, ob die Zeile mit Zahlen (der Zeilennummer) beginnt und danach zwei Doppelpunkte kommen. Das ganze ist ein regulärer Ausdruck. ^
heißt"am Zeilenanfang",
[0-9]
ist die Klasse der Ziffern von 0 bis 9, die durch den nachfolgenden *
beliebig oft vorkommen dürfen und von zwei Doppelpunkten gefolgt sein müssen. Die Ausgabe von FINDSTR
wird durch > NUL
nicht ausgegeben. in den Zeilen 30 und 32 verarbeitet. && führt die Befehle (in der Klammer) danach aus, wenn der Rückgabewert 0 ist,
|
Kleine Änderung der Anforderungen => Du musst noch mehr komplizierten Batchscript-Code verstehen.
Das mit den fehlerhaften Zahlenvergleichen tut mir leid, verschusselt und nicht richtig getestet.
Gruß
Friemler
Hallo hamburgrulez,
Du musst schreiben:
Wenn Du den Inhalt einer Variablen in Batchscript verwenden willst, musst Du den Variablenbezeichner in Prozentzeichen einschließen. Nur bei einer Zuweisung eines Wertes an eine Variable müssen die Prozentzeichen weggelassen werden.
Das
Gruß
Friemler
Du musst schreiben:
del "%SrcFile%"
Wenn Du den Inhalt einer Variablen in Batchscript verwenden willst, musst Du den Variablenbezeichner in Prozentzeichen einschließen. Nur bei einer Zuweisung eines Wertes an eine Variable müssen die Prozentzeichen weggelassen werden.
Das
/s
lass' mal lieber weg. Diesen Parameter verwendet man, um alle Dateien und Unterverzeichnisse im übergebenen Verzeichnis zu löschen...Gruß
Friemler