Keine Umlaute via Aufgabenplaner / Task Scheduler

Status
Für weitere Antworten geschlossen.

rumknapser

Benutzer
Mitglied seit
02. Mai 2013
Beiträge
329
Punkte für Reaktionen
6
Punkte
24
Guten Morgen!
Ich such mir hier gerade nen Wolf und es wird schon bald wieder hell, deswegen möcht ich doch mal meine Frage ins Forum hier stellen, um mich dann hoffentlich zur Nachtruhe betten zu können.

Ich habe eine Skript, welches per "Task Scheduler / Aufgabenplaner" aufgerufen wird.
Es erstellt ein rar-Archiv verschieder Dateien aus diversen Verzeichnissen.

Leider muss der Name der entstehenden RAR Datei Umlaute enthalten (da sind mir die Hände gebunden), und auch einige Verzeichnisnamen haben Umlaute intus.

Nun funktioniert das Skript prima, wenn ich es auf der Konsole (Bash) aufrufe, nicht aber, wenn es im Scheduler läuft.

Ein von mir erstelltes "Logfile" zeigt:
Rich (BBCode):
Creating archive /volume1/Testweise/k???lnischer Tr??ger.ra

WARNING: No files
(Das ist die Meldung von RAR, der das Archiv nicht anlegen kann (Kein Wunder, bei dem Namen) und auch deswegen wohl keine Dateien hinzufügen möchte.)
Ändere ich den Namen des zu erstellenden Rars auf einen ohne Umlaute, wird nur diese Meldung angezeigt:

Rich (BBCode):
Creating archive /volume1/Testweise/kölnischer Tröger.rar

WARNING: No files

An den Umlauten in den Ordnernamen komme ich also nicht vorbei...

Die relevante Zeile aus dem Skript:

Rich (BBCode):
/volume1/public/rar/rar u -as -dh -ai -m5 -ep -tl -ap"kölnischer Tröger" "/volume1/Testweise/kölnischer Tröger.rar" "/volume1/Dateien/kölnischer Tröger/*.doc" >>/volume1/Testweise/log.log
Oder, der Lesbarkeit halber:
Rich (BBCode):
/volume1/public/rar/rar u -as -dh -ai -m5 -ep -tl -ap"kölnischer Tröger" "/volume1/Testweise/kölnischer Tröger.rar" "/volume1/Dateien/kölnischer Tröger/*.doc" >>/volume1/Testweise/log.log

Ich habe die entsprechende *.sh Datei mit Notepad++ angeguckt, es ist ein UNIX ANSI Format.

Eingetipte Umlaute im VI werden korrekt angezeigt, aber auch nicht verarbeitet.
Eingetipte Umlaute im MCEDIT werden korrekt angezeigt, aber auch nicht verarbeitet.
Ändere ich die Umlaute im Notepad++, sehe ich im VI die Umlaute nicht, anstelle dessen nur #. Das Ändern dieser Platzhalter # im VI veranlasst den VI dazu, sich seltsam zu verhalten. Er "springt" dann mehrere Zeichen in Editierrichtung, anstatt nur eins (nicht darstelbare Zeichen, vermute ich, die ich da unorthodoxerweise editieren will)

Nun bin ich ratlos....

Wisst Ihr evtl. bzw. habt Ihr einen Vorschlag, wie ich dem Cronjob (der ja keiner ist) irgendetwas mitgeben kann, damit er mit Umlauten umgehen kann?
 

rumknapser

Benutzer
Mitglied seit
02. Mai 2013
Beiträge
329
Punkte für Reaktionen
6
Punkte
24
Ich hoffe, ich bin nicht zu ungeduldig, aber niemand ne Idee, oder einen klitzekleinen Wink für mich?
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo,

zwei Lösungsansätze, kann gerade nicht prüfen was auf der DS überhaupt vorhanden ist. Eventuell werden diese Werte auch bei dir schon in den profiles gesetzt. Wenn ein Script über den Aufgabenplaner läuft werden die Anweisungen die in der .profile stehen nicht verarbeitet im Gegensatz wenn Du das über die shell aufrufst. Achtung bash kann noch ein eigenes profile haben.

1.) Im Script die verwendete Locale definieren. Falls deutsch und UTF-8 dann:

LANG=de_DE.UTF-8
LC_ALL=de_DE.UTF-8
export LANG LC_ALL

2.) Wenn es denn mit der bash läuft. Ein weiteres Script erstellen mit der Shebang für bash und dieses dann aufrufen.

Welche locales überhaupt vorhanden sind kann man mit

Rich (BBCode):
locale -a

anzeigen lassen. Und der Editor sollte entsprechend auch UTF-8 verarbeiten. Soviel ich im Kopf habe macht das der Aufgabenplaner.

Gruß Frank
 

rumknapser

Benutzer
Mitglied seit
02. Mai 2013
Beiträge
329
Punkte für Reaktionen
6
Punkte
24
Moin und Danke f.d. Ansätze!

Punkt 1) hat geholfen!
1.) Im Script die verwendete Locale definieren. Falls deutsch und UTF-8 dann:
LANG=de_DE.UTF-8
LC_ALL=de_DE.UTF-8
export LANG LC_ALL

Sei also herzlich bedankt!



Hier noch einige Experimentierergebnisse, bevor ich mein Skript angepasst habe:


Also aus dem Script heraus, via Aufgabenplaner ergibt locale -a > log dieses:
Rich (BBCode):
C
POSIX
cs_CZ.utf8
da_DK.utf8
de_DE.utf8
en_US.utf8
es_ES.utf8
fr_FR.utf8
hu_HU.utf8
it_IT.utf8
ja_JP.utf8
ko_KR.utf8
nb_NO.utf8
nl_NL.utf8
pl_PL.utf8
pt_BR.utf8
pt_PT.utf8
ru_RU.utf8
sv_SE.utf8
tr_TR.utf8
zh_CN.utf8
zh_TW.utf8
aus der Bash heraus, dieses:
Rich (BBCode):
C
cs_CZ.utf8
da_DK.utf8
de_DE.utf8
en_US.utf8
es_ES.utf8
fr_FR.utf8
hu_HU.utf8
it_IT.utf8
ja_JP.utf8
ko_KR.utf8
nb_NO.utf8
nl_NL.utf8
pl_PL.utf8
POSIX
pt_BR.utf8
pt_PT.utf8
ru_RU.utf8
sv_SE.utf8
tr_TR.utf8
zh_CN.utf8
zh_TW.utf8
Das scheint mir, bis auf die unterschiedliche Sortierung, identisch.

Der Vollständigkeit halber, hier noch meine ~/bash_profile, die ich im ersten Post nicht angehangen habe. Dort wird keine locale gesetzt:
Rich (BBCode):
umask 022

#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:

#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then
#        stty erase
#fi

HOME=/root
export HOME

export HISTSIZE=9999999
export HISTFILESIZE=9999999

EXINIT="set noai"
export EXINIT

#TERM=${TERM:-cons25}
#export TERM
export TERMINFO=/opt/share/terminfo
export TERM=xterm

PAGER=more
export PAGER

PS1="`hostname`:${cwd}> "
#PS1='${USER}@${HOSTNAME}:$(tput bold)${PWD}$(tput sgr0)> '
export PS1

alias mc="mc -c"
alias dir="ls -al"
alias ll="ls -la"
PATH=$PATH:/var/packages/JavaManager/target/Java/bin
PATH=$PATH:/var/packages/JavaManager/target/Java/jre/bin
export PATH

alias locate="locate -i"

PATH=$PATH:/volume1/@appstore/JavaManager/Java/bin # Synology Java Manager Package
PATH=$PATH:/volume1/@appstore/JavaManager/Java/jre/bin # Synology Java Manager Package
export PATH # Synology Java Manager Package
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat