Hat wer cygwin am Laufen?

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
dy/dx
Junior Member
Junior Member
Posts: 92
Joined: 2005-03-06, 22:32 UTC
Contact:

Hat wer cygwin am Laufen?

Post by *dy/dx »

Hi,

Ich haette gerne einen Link im Startermenue der mir cygwin im aktuellen Arbeitsverzeichnis aufruft.

Jetzt bastel ich schon ein Weilchen herum, hab mit cmd-Dateien versucht und auch mit direkten Links. Dann habe ich das hier gefunden: http://dam.mellis.org/2004/06/open_cygwin_bash_shell_here/

und wollte es fuers Startermenue modifizieren. Allerdings erhalte ich beim Start folgende Fehlermeldung:

Code: Select all

bash: cd: /cygdrive/c/DOKUME~1/niki/LOKALE~/Temp/CMD194.tmp: Not a directory
Hat zufaellig jemand cygwin und TC am Laufen und kann mir sagen wie ich das korrekt einbinde?

LG
Niki
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Habe zwar keine Erfahrung mit cygwin, aber ich vermute es liegt an dem %L das in dem Regscript fürs Kontextmenu auftaucht:

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\bash]
@="Open Bash Shell Here"

[HKEY_CLASSES_ROOT\Directory\shell\bash\command]
@="c:\\cygwin\\bin\\bash.exe --login -i -c 'cd \"`cygpath \"$*\"`\";bash' bash %L"
Im TC hat der Parameter %L folgende Bedeutung:
"Erzeuge ein Listfile im Temp-Verzeichnis das die markierten Dateinamen enthält und übergeben den Namen des Listfiles."

Wenn du die Zeichenkette %L an ein Programm übergeben musst, dann solltest du anstelle dessen %%L im Startmenü angeben.

Also irgendwas wie:

Code: Select all

c:\cygwin\bin\bash.exe --login -i -c 'cd "`cygpath "%P"`";bash' bash %%L
HTH
Holger
User avatar
dy/dx
Junior Member
Junior Member
Posts: 92
Joined: 2005-03-06, 22:32 UTC
Contact:

Post by *dy/dx »

Hi,

Danke für die Antwort, das war es wirklich!! Super.

Allerdings würgt'sn jetzt bei Unicode Pfadnamen :-(

Image: http://img714.imageshack.us/img714/4707/cygwinstreiktmitunicode.png


LG
Niki
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Wie übergibst du denn den aktuellen Pfad?
Mit "%P"?
Vielleicht hilft es ja den kurzen DOS-Pfad mit "%p" zu übergeben.

Gruß
Holger
User avatar
dy/dx
Junior Member
Junior Member
Posts: 92
Joined: 2005-03-06, 22:32 UTC
Contact:

Post by *dy/dx »

JUHUUUUU!!!! :D :D :D

Damit funktionierts! Unglaublich! Danke fuer die kompetente Antwort!

LG
Niki
User avatar
dy/dx
Junior Member
Junior Member
Posts: 92
Joined: 2005-03-06, 22:32 UTC
Contact:

Post by *dy/dx »

Eine kleine Frage dazu noch :-(

Das haut jetzt wie gesagt super hin, danke:

Code: Select all

menu1=Shell
cmd1=c:\cygwin\bin\bash.exe
param1=--login -i -c 'cd "`cygpath "%p"`";bash' bash %%L
Jetzt hab ich aber noch den Wunsch nicht c:\cygwin\bin\bash.exe direkt zu starten (denn das startet im cmd.exe) sondern einen Terminal-Emulatorersatz (z.B. "console.exe -r" oder "PuTTY.exe -cygterm" davorzuschalten.

Das heisst: Ich hab einen zusätzlichen Parameter den ich quoten muss. Ich glaub ich hab alles was mir eingefallen ist durchprobiert, ich bekomme es einfach nicht zum Laufen :-(

Code: Select all

menu1=Shell
cmd1=putty.exe
param1=-cygterm c:\cygwin\bin\bash.exe --login -i -c 'cd "$(cygpath "%p")";bash' bash %%L
geht ja leider nicht, da ich alles nach "-cygterm" wieder quoten muss. Ich hab verschiedene Quotingsymbole verwendet, versucht das "-cygterm" zu "cmd" dazugeben uvm. aber es haut einfach nicht hin :-(

Hat noch wer einen Tipp wie das korrekt aussehen könnte?

Besten Dank :-)


EDIT: SOLVED!!

Auf das wär ich fast nicht draufgekommen aber irgendwas hab ichs doch versucht: 2 Anführungszeichen - wie in Basic helfen offenbar!
Post Reply