Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Sonderzeichen in Batch maskieren

Frage Entwicklung Batch & Shell

Mitglied: kingcoollui

kingcoollui (Level 1) - Jetzt verbinden

02.08.2009, aktualisiert 22:42 Uhr, 10089 Aufrufe, 4 Kommentare

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
Mitglied: rubberman
02.08.2009 um 23:17 Uhr
Hallo kingcoollui,

setze vor jeden Block in dem Exposés vorkommt die Zeile
01.
chcp 1252>nul
und hinter den Block
01.
chcp 850>nul
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)
Bitte warten ..
Mitglied: kingcoollui
02.08.2009 um 23:30 Uhr
Hi rubbermann,

super geil!

Danke für die extrem schnelle Antwort. Habs gleich ausprobiert. Funktioniert 1A!!!

Hast mir den Sonntag abgend gerettet.

Beste Grüße

Lui
Bitte warten ..
Mitglied: rubberman
02.08.2009 um 23:34 Uhr
Gern geschehen

Grüße
rubberman
Bitte warten ..
Mitglied: LotPings
03.08.2009 um 11:17 Uhr
Hallo Lui,

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:
01.
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 
02.
) 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 Code Tags einfassen.

Gruß
LotPings
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...