Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 10217 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Sonderzeichen in eine Batch automatisch einfügen (18)

Frage von Dr.Byte zum Thema Batch & Shell ...

Batch & Shell
gelöst Sonderzeichen in der CMD Konsole darstellen? (1)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Microsoft Office
Sonderzeichen bei Terminen - Office 2016

Frage von Martinaaa zum Thema Microsoft Office ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

Frage von udobec zum Thema LAN, WAN, Wireless ...

Hyper-V
Hyper V VM abgeschaltet Speicher zu gering (7)

Frage von Thabeus zum Thema Hyper-V ...

Netzwerkgrundlagen
Frage zu VLANS taged untaged exclude (6)

Frage von Akcent zum Thema Netzwerkgrundlagen ...