Sonderzeichen in Batch maskieren
Exposés in Dateipfad der batch verursacht Fehler
Hallo zusammen,
habe ein riesen Problem.
Habe in meinem Dateipfad C:\ServerDaten\Exposés.
Das steht jetzt so in der Batchdatei. Probelm die Batch kann ´ dieses Zeichen nicht interpretieren.
Wie kriege ich dieses Sondernzeichen Maskiert? Oder gibt es auch eine andere Möglichkeit.
Was ich auch bräuchte, wie kann ich eine Logdatei erzeugen, die Fehler beim Ausführen, oder generell ein Protokoll was passiert erstellt?
Muss sagen bin ein absoluter DAU was Batch angeht.
Hier der Inhalt der Batchdatei (für Verbesserungen bin ich jederzeit offen - vorallem Vereinfachungen):
@echo off
REM ------------------------------------------------------------
REM Name: xxx.bat
REM Autor: xxx
REM Datum: 23. Juli 2009
REM ------------------------------------------------------------
echo.
echo ------------------------------------
echo Einspielung der Arbeitsdateien
echo.
echo fuer WIN2000
echo.
echo Bitte Warten...
echo ------------------------------------
echo.
echo.
cls
echo ...Daten-Einspielung beginnt...
xcopy "C:\ServerDaten\Arbeitsordner\A"\*.* "C:\ServerDaten\Exposés\A"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\B"\*.* "C:\ServerDaten\Exposés\B"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\C"\*.* "C:\ServerDaten\Exposés\C"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\D"\*.* "C:\ServerDaten\Exposés\D"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\E"\*.* "C:\ServerDaten\Exposés\E"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\F"\*.* "C:\ServerDaten\Exposés\F"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\G"\*.* "C:\ServerDaten\Exposés\G"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\H"\*.* "C:\ServerDaten\Exposés\H"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\I"\*.* "C:\ServerDaten\Exposés\I"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\J"\*.* "C:\ServerDaten\Exposés\J"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\K"\*.* "C:\ServerDaten\Exposés\K"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\L"\*.* "C:\ServerDaten\Exposés\L"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\M"\*.* "C:\ServerDaten\Exposés\M"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\N"\*.* "C:\ServerDaten\Exposés\N"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\O"\*.* "C:\ServerDaten\Exposés\O"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\P"\*.* "C:\ServerDaten\Exposés\P"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Q"\*.* "C:\ServerDaten\Exposés\Q"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\R"\*.* "C:\ServerDaten\Exposés\R"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\S"\*.* "C:\ServerDaten\Exposés\S"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Sch"\*.* "C:\ServerDaten\Exposés\Sch"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\T"\*.* "C:\ServerDaten\Exposés\T"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\U"\*.* "C:\ServerDaten\Exposés\U"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\V"\*.* "C:\ServerDaten\Exposés\V"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\W"\*.* "C:\ServerDaten\Exposés\W"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\XY"\*.* "C:\ServerDaten\Exposés\XY"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Z"\*.* "C:\ServerDaten\Exposés\Z"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Exposévorlagen"\*.* "C:\ServerDaten\Exposés\Exposévorlagen"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Investment"\*.* "C:\ServerDaten\Investment\D"\*.* /e /v /s /y
echo.
echo ...Einspielung der Dateien ist beendet
echo.
echo Ordner wird geleert
echo.
del "C:\ServerDaten\Arbeitsordner\A"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\B"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\C"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\D"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\E"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\F"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\G"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\H"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\I"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\J"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\K"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\L"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\M"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\N"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\O"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\P"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Q"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\R"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\S"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Sch"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\T"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\U"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\V"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\W"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\XY"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Z"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Exposévorlagen"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Investment"\*.* /s /q
echo Ordner erfolgreich geleert
echo.
echo Loesche temporaere Dateien in Exposés
echo.
del "C:\ServerDaten\Exposés\A"\*.tmp /s /q
del "C:\ServerDaten\Exposés\B"\*.tmp /s /q
del "C:\ServerDaten\Exposés\C"\*.tmp /s /q
del "C:\ServerDaten\Exposés\D"\*.tmp /s /q
del "C:\ServerDaten\Exposés\E"\*.tmp /s /q
del "C:\ServerDaten\Exposés\F"\*.tmp /s /q
del "C:\ServerDaten\Exposés\G"\*.tmp /s /q
del "C:\ServerDaten\Exposés\H"\*.tmp /s /q
del "C:\ServerDaten\Exposés\I"\*.tmp /s /q
del "C:\ServerDaten\Exposés\J"\*.tmp /s /q
del "C:\ServerDaten\Exposés\K"\*.tmp /s /q
del "C:\ServerDaten\Exposés\L"\*.tmp /s /q
del "C:\ServerDaten\Exposés\M"\*.tmp /s /q
del "C:\ServerDaten\Exposés\N"\*.tmp /s /q
del "C:\ServerDaten\Exposés\O"\*.tmp /s /q
del "C:\ServerDaten\Exposés\P"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Q"\*.tmp /s /q
del "C:\ServerDaten\Exposés\R"\*.tmp /s /q
del "C:\ServerDaten\Exposés\S"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Sch"\*.tmp /s /q
del "C:\ServerDaten\Exposés\T"\*.tmp /s /q
del "C:\ServerDaten\Exposés\U"\*.tmp /s /q
del "C:\ServerDaten\Exposés\V"\*.tmp /s /q
del "C:\ServerDaten\Exposés\W"\*.tmp /s /q
del "C:\ServerDaten\Exposés\XY"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Z"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Exposévorlagen"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Investment"\*.tmp /s /q
echo
echo Loeschen der temporaeren Dateien erfolgreich abgeschlossen
echo.
exit
Ach bevor ich es vergessen, ist ein Windows 2000 Server mit SP4.
Danke bereits jetzt für eure Hilfe!
Grüße
Lui
Hallo zusammen,
habe ein riesen Problem.
Habe in meinem Dateipfad C:\ServerDaten\Exposés.
Das steht jetzt so in der Batchdatei. Probelm die Batch kann ´ dieses Zeichen nicht interpretieren.
Wie kriege ich dieses Sondernzeichen Maskiert? Oder gibt es auch eine andere Möglichkeit.
Was ich auch bräuchte, wie kann ich eine Logdatei erzeugen, die Fehler beim Ausführen, oder generell ein Protokoll was passiert erstellt?
Muss sagen bin ein absoluter DAU was Batch angeht.
Hier der Inhalt der Batchdatei (für Verbesserungen bin ich jederzeit offen - vorallem Vereinfachungen):
@echo off
REM ------------------------------------------------------------
REM Name: xxx.bat
REM Autor: xxx
REM Datum: 23. Juli 2009
REM ------------------------------------------------------------
echo.
echo ------------------------------------
echo Einspielung der Arbeitsdateien
echo.
echo fuer WIN2000
echo.
echo Bitte Warten...
echo ------------------------------------
echo.
echo.
cls
echo ...Daten-Einspielung beginnt...
xcopy "C:\ServerDaten\Arbeitsordner\A"\*.* "C:\ServerDaten\Exposés\A"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\B"\*.* "C:\ServerDaten\Exposés\B"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\C"\*.* "C:\ServerDaten\Exposés\C"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\D"\*.* "C:\ServerDaten\Exposés\D"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\E"\*.* "C:\ServerDaten\Exposés\E"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\F"\*.* "C:\ServerDaten\Exposés\F"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\G"\*.* "C:\ServerDaten\Exposés\G"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\H"\*.* "C:\ServerDaten\Exposés\H"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\I"\*.* "C:\ServerDaten\Exposés\I"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\J"\*.* "C:\ServerDaten\Exposés\J"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\K"\*.* "C:\ServerDaten\Exposés\K"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\L"\*.* "C:\ServerDaten\Exposés\L"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\M"\*.* "C:\ServerDaten\Exposés\M"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\N"\*.* "C:\ServerDaten\Exposés\N"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\O"\*.* "C:\ServerDaten\Exposés\O"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\P"\*.* "C:\ServerDaten\Exposés\P"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Q"\*.* "C:\ServerDaten\Exposés\Q"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\R"\*.* "C:\ServerDaten\Exposés\R"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\S"\*.* "C:\ServerDaten\Exposés\S"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Sch"\*.* "C:\ServerDaten\Exposés\Sch"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\T"\*.* "C:\ServerDaten\Exposés\T"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\U"\*.* "C:\ServerDaten\Exposés\U"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\V"\*.* "C:\ServerDaten\Exposés\V"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\W"\*.* "C:\ServerDaten\Exposés\W"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\XY"\*.* "C:\ServerDaten\Exposés\XY"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Z"\*.* "C:\ServerDaten\Exposés\Z"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Exposévorlagen"\*.* "C:\ServerDaten\Exposés\Exposévorlagen"\*.* /e /v /s /y
xcopy "C:\ServerDaten\Arbeitsordner\Investment"\*.* "C:\ServerDaten\Investment\D"\*.* /e /v /s /y
echo.
echo ...Einspielung der Dateien ist beendet
echo.
echo Ordner wird geleert
echo.
del "C:\ServerDaten\Arbeitsordner\A"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\B"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\C"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\D"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\E"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\F"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\G"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\H"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\I"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\J"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\K"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\L"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\M"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\N"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\O"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\P"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Q"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\R"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\S"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Sch"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\T"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\U"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\V"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\W"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\XY"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Z"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Exposévorlagen"\*.* /s /q
del "C:\ServerDaten\Arbeitsordner\Investment"\*.* /s /q
echo Ordner erfolgreich geleert
echo.
echo Loesche temporaere Dateien in Exposés
echo.
del "C:\ServerDaten\Exposés\A"\*.tmp /s /q
del "C:\ServerDaten\Exposés\B"\*.tmp /s /q
del "C:\ServerDaten\Exposés\C"\*.tmp /s /q
del "C:\ServerDaten\Exposés\D"\*.tmp /s /q
del "C:\ServerDaten\Exposés\E"\*.tmp /s /q
del "C:\ServerDaten\Exposés\F"\*.tmp /s /q
del "C:\ServerDaten\Exposés\G"\*.tmp /s /q
del "C:\ServerDaten\Exposés\H"\*.tmp /s /q
del "C:\ServerDaten\Exposés\I"\*.tmp /s /q
del "C:\ServerDaten\Exposés\J"\*.tmp /s /q
del "C:\ServerDaten\Exposés\K"\*.tmp /s /q
del "C:\ServerDaten\Exposés\L"\*.tmp /s /q
del "C:\ServerDaten\Exposés\M"\*.tmp /s /q
del "C:\ServerDaten\Exposés\N"\*.tmp /s /q
del "C:\ServerDaten\Exposés\O"\*.tmp /s /q
del "C:\ServerDaten\Exposés\P"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Q"\*.tmp /s /q
del "C:\ServerDaten\Exposés\R"\*.tmp /s /q
del "C:\ServerDaten\Exposés\S"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Sch"\*.tmp /s /q
del "C:\ServerDaten\Exposés\T"\*.tmp /s /q
del "C:\ServerDaten\Exposés\U"\*.tmp /s /q
del "C:\ServerDaten\Exposés\V"\*.tmp /s /q
del "C:\ServerDaten\Exposés\W"\*.tmp /s /q
del "C:\ServerDaten\Exposés\XY"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Z"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Exposévorlagen"\*.tmp /s /q
del "C:\ServerDaten\Exposés\Investment"\*.tmp /s /q
echo
echo Loeschen der temporaeren Dateien erfolgreich abgeschlossen
echo.
exit
Ach bevor ich es vergessen, ist ein Windows 2000 Server mit SP4.
Danke bereits jetzt für eure Hilfe!
Grüße
Lui
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121853
Url: https://administrator.de/contentid/121853
Ausgedruckt am: 18.11.2024 um 03:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo kingcoollui,
setze vor jeden Block in dem Exposés vorkommt die Zeile
und hinter den Block
Das ändert sie Codepage auf ANSI und wieder zurück auf ASCII. Somit werden die Zeichen genauso interpretiert, wie sie im Texteditor angezeigt werden.
Um ein Logfile zu schreiben, könntest du nach jeder Zeile den Errorlevel abfragen um zu sehen ob alles OK war. Alternativ könnterst du nur die Fehlerausgabe an die Datei umleiten indem du zB. 2>>Err.log hinter jede Zeile schreibst. (Mit "jede Zeile" meine ich natürlich immer die relevanten)
setze vor jeden Block in dem Exposés vorkommt die Zeile
chcp 1252>nul
chcp 850>nul
Um ein Logfile zu schreiben, könntest du nach jeder Zeile den Errorlevel abfragen um zu sehen ob alles OK war. Alternativ könnterst du nur die Fehlerausgabe an die Datei umleiten indem du zB. 2>>Err.log hinter jede Zeile schreibst. (Mit "jede Zeile" meine ich natürlich immer die relevanten)
Hallo Lui,
ein paar Anmerkungen zu der Batchdatei
Gruß
LotPings
ein paar Anmerkungen zu der Batchdatei
- Statt einem Xcopy Source Dest und anschließendem Del Source schlage ich vor, Move zu benutzen. Auf dem gleichen Datenträger sollte das um Größenordnungen schneller sein, da nur der Index geändert wird.
- Redundanz bei den Befehlen kann Fehler erzeugen (Die Zeile mit Investment weicht ab), besser ist eine Schleife mit:
For %%A in (A B C D E F G H I J K L M N O P Q R S SCH T U V W XY Z Exposévorlagen
) Do Move "C:\ServerDaten\Arbeitsordner\%%A\*" "C:\ServerDaten\Exposés\%%A\" /y
- wenn du Code postest, solltest du den der besseren Lesbarkeit wegen in die entsprechenden Formatierungen in den Beiträgen einfassen.
Gruß
LotPings