Probleme mit Pfadangabe

Fenthik

Fenthik

Grünschnabel
Hallo zusammen,
ich weiss das dies nach dem Titel eine "anfänger"-Frage ist. Ich komm allerdings mit den gefundenen Lösungen nicht klar.

Folgendes Beispiel funktioniert Problemlos:
Code:
ABLAGE=/cygdrive/z/share/BLA/ablage
TEMP=/cygdrive/z/share/BLA/ablage/temp/$1-$2
SOURCE=/cygdrive/z/share/BLA/ablage/Installationspaket$3/$1-$2
TARGET=/cygdrive/z/share/BLA/ablage/temp/


Wenn ich nun aber folgenden Pfad verwende bekomme ich eine Fehlermeldung:
Code:
ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage
TEMP=/cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage/temp/$1-$2
SOURCE=/cygdrive/p/X000XXX-XX/A000XXX-XXXX XXXX/XXXXX/ablage/Installationspaket$3/$1-$2
TARGET=/cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage/temp/
Mit diesen Pfaden spuckt er mir die Fehlermeldung aus, das /cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage ein Verzeichnis sei. (verzeichnisname is a directory)

Ich hab es mit "" und mit\ und mit den ganzen andern Wildcards versucht, aber nichts hat wirklich geklappt. Ich habe den Ordner auch umbenannt und das Leerzeichen entfernt, aber das hat nichts gebracht. Ich kann mir vorstellen, dass die Bindestrchie Probleme machen könnten, aber wie löse ich das Problem?

Sorry falls es ne total einfache Lösung gibt, aber ich hab sie bis jetzt nicht gefunden... Ebenso möchte ich die absoluten Pfade behalten. Ein einfacher wink wo ich schauen muss hilft sicherlich =)
 
Zuletzt bearbeitet:
Ich kenn mich mit 'cygwin' nicht aus, aber spontan würd ich sagen die Leerzeichen sind das Problem...
Gruss
d22
 
ich hab den Pfad auch schon umbenannt und die Leerzeichen entfernt, das hat leider kein Erfolg gebracht....
 
Was machst du denn mit diesen Pfaden, bzw. wer/was gibt denn die Fehlermeldung aus?
 
Naja ich weise die Pfade den entsprechenden Variablen zu und bereits dort wird dieser fehler produziert.

Dann steht in der Konsole folgendes (sinngemäss)

line 39: /cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage is a directory
line 40: /cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage/temp/$1-$2 file or directory not found.
und so weiter.

Auf diesen Linien werden die Verzeichnisse den Variablen zugeordnet. Und da diese Fehler entstehen, verarbeitet er das Script auch nicht weiter. Wie gesagt selbst ohne Leerzeichen bringt er mir hier diese Fehlermeldung. Ich vermute also stark das es an den Bindestrichen liegt.
Das er bei line 40 sagt, dass dieses Verzeichnis nicht gefunden wird ist schon logisch, weil er es erst später erstellt (Die Variablen werden zur Übersicht am Anfang festgelegt). Doch wieso funktioniert es (Siehe Posting 1) mit dem andern Pfad ohne Probleme?
 
Dann steht in der Konsole folgendes (sinngemäss)

"Sinngemäß" reicht nicht.

Genaue Fehlermeldung posten.

Ich hab es mit "" und mit\ und mit den ganzen andern Wildcards versucht

Wie hast du das versucht?

Code:
ABLAGE=/cygdrive/p/"X000XXX-XX"/"X000XXX-XXXX XXXX"/XXXXX/ablage

So sollte das funktionieren.
 
ausprobiert habe ich es mit:
Code:
ABLAGE=/cygdrive/p/"X000XXX-XX"/"X000XXX-XXXX XXXX"/XXXXX/ablage
ABLAGE="/cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage"
ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage
ABLAGE="/cygdrive/p/X000XXX-XX/X000XXX-XXXX\ XXXX/XXXXX/ablage"
ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX\ XXXX/XXXXX/ablage
ABLAGE=/cygdrive/p/"X000XXX-XX"/"X000XXX-XXXX\ XXXX"/XXXXX/ablage

Das Problem mit jeder dieser Varianten ist, das er das Leerzeichen nicht richtig interpretiert.

Asche über mein Haupt, ich habe gestern Nacht beim testen ein Fehler gemacht. Ohne Leerzeichen funktioniert es doch. Hab es gestern wohl falsch umbenannt. Ein dickes Sorry!!!

Also aktuelle Situation:

/cygdrive/p/X000XXX-XX/X000XXX-XXXX XXXX/XXXXX/ablage

das Leerzeichen stört und ich kann bzw. soll es nicht im Ordner entfernen. Sondern das Skript dazu bringen mit dem Leerzeichen umzugehen.

mit
Code:
ABLAGE=/cygdrive/p/X000XXX-XX/"X000XXX-XXXX XXXX"/XXXXX/ablage 
oder
ABLAGE=/cygdrive/p/"X000XXX-XX"/"X000XXX-XXXX XXXX"/XXXXX/ablage
funktioniert es auch nicht.

Was die Wildcards wie ? und * betrifft, so habe ich diese auch bereits fast schon aus Verzweiflung versucht anstatt dem Leerzeichen einzugeben, ohne erfolg, bsp:
Code:
ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX?XXXX/XXXXX/ablage
ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX*XXXX/XXXXX/ablage

Was die Konsole konkret für ein Fehler macht?
es ergibt mit jeder dieser Varianten für sie 2 Verzeichnisse, einerseits:
/cygdrive/p/X000XXX-XX/X000XXX-XXXX
und:
XXXX/XXXXX/ablage

(was auch für meinen Wissensstand durchaus logisch ist, aber wie gesagt ich schaffe es nicht, das ein entsprechender Umgang mit dem Leerzeichen funktioniert)
 
Zuletzt bearbeitet:
Versuchs mal so:
Code:
ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX\ XXXX/XXXXX/ablage
 
Habe ich bereits versucht, dann habe ich wieder folgendes Ergebnis:

es ergibt für die Konsole 2 Verzeichnisse, einerseits:
/cygdrive/p/X000XXX-XX/X000XXX-XXXX
und andererseits:
XXXX/XXXXX/ablage
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ich habe am falschen Ort den Fehler gesucht. Die Variablen wurden schon korrekt "gefüllt", wenn die Variablen aber später eingesetzt werden müssen diese in "" stehen:
"$ABLAGE"

so funktioniert es mit:

ABLAGE=/cygdrive/p/X000XXX-XX/X000XXX-XXXX\ XXXX/XXXXX/ablage


Vielen herzlichen Dank =) Ohne eure Unterstüzung hätt ich niemals den Fehler gefunden.
 
Zuletzt bearbeitet:
Variablen sollten möglichst immer ge(double)quotet werden.
Besonders wenn man sich in so exotischen Umgebungen bewegt, wo hässliche Zeichen in Dateien und Verzeichnissen vorkommen.
BTW Cygwin ist nunmal keine echte *nixoide Shell und deshalb hier etwas OT.

Gruß Wolfgang
 

Ähnliche Themen

Queue für copy Script

Samba 4.1.11 Domänen anbindung funktioniert nicht !!!

Debian Routing Problem

Portfreigabe Plesk + Ubuntu

Fedora: easyLife produzierte mehr Probleme als Lösungen

Zurück
Oben