cygwin aus TC-Konsole aufrufen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Lunahood
Junior Member
Junior Member
Posts: 30
Joined: 2003-11-03, 17:23 UTC

cygwin aus TC-Konsole aufrufen

Post by *Lunahood »

Hallo allerseits,

nachdem ich normalerweise eher lesend in Eurer Mitte anwesend bin, habe ich nun doch mal nochmal eine Anfrage:

Wenn ich ein einem Verzeichnis x bin und wechsele auf die TC-Commandozeile wird unter Eingabe von "cmd" bekanntlich das aktuelle Verzeichnis in einer Windows-Shell aufgerufen.

Dazu habe ich 2 Fragen:
1. Wie kann ich auf selbe (oder ähnliche vorzüglich mauslose) Art und Weise cygwin aus dem TC heraus starten
2. Wie kann ich cygwin das aktuelle Verzeichnis übermitteln

Habt Dank für Eure (eventuellen) Antworten.
Last edited by Lunahood on 2007-01-10, 16:07 UTC, edited 1 time in total.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50768
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Ich starte Cygwin jeweils mit
c:\cygwin\cygwin.bat

Da sollte auch über einen Button gehen.
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

vorzüglich mauslose
im TC 7 bietet sich die Verwendung eines Alias an...
Lunahood
Junior Member
Junior Member
Posts: 30
Joined: 2003-11-03, 17:23 UTC

Post by *Lunahood »

Ja, der Aufruf per c:\cygwin\cygwin.bat funktioniert bei mir grundsätzlich natürlich ebenso, allerdings hoffte ich ein wenig auf eine "schnellere Lösung" in der Form, dass man vielleicht lediglich "cyg" oder sowas eingibt.

Leider ist mir nicht ganz klar, wie ich es bewerkstelligen kann, dass ich aus einer Windows-Konsole (und somit letztlch auch der TC-Konsole) durch Aufruf von 'cyg' (oder anderem Kürzel) den cygwin starten kann.


Die zweite Anfrage, sprich die Übernahme des aktuellen Pfades in den cygwin ist jedoch (zumindest bei mir) durch den Aufruf der Batch-Datei noch nicht gelöst und würde die grössere "Erleichterung" darstellen. Gibt es dafür vielleicht auch einen bekannten Lösungsansatz ?
User avatar
RID500
Member
Member
Posts: 194
Joined: 2006-11-20, 12:38 UTC

Post by *RID500 »

2Lunahood
Kannst du nicht die Cygwin Batch mittels einer Batch aufrufen?
C:\Windows\cyg.cmd wrote: @ECHO OFF
c:\cygwin\cygwin.bat
Oder erstelle ein Alias, wie Lefteous meinte.


> die Übernahme des aktuellen Pfades

Kann man beim Start der cygwin.bat Parameten übergeben?

Dann kann in TC ein Kommando oder einen Button
anlegen mit c:\cygwin\cygwin.bat als Befehl
und einem TC-Parameter wie %P als Parameter.

Der TC-Parameter %P beinhaltet den aktuellen Pfad
und muss innerhalb der cygwin.bat mittels %1 abgefragt werden.

Für weitere Hilfe zu den Parametern:
* rechte Maustaste auf einen Button
* "Ändern..."
* F1 -Taste drücken
/join #TCMD Chat at irc.freenode.net - Today's newbies are tomorrow's experts.
Lunahood
Junior Member
Junior Member
Posts: 30
Joined: 2003-11-03, 17:23 UTC

Post by *Lunahood »

Danke schonmal; der Aufruf von "'cyg" aus der TC-Konsole und somit Part 1 funktioniert nun tadellos. Steht noch der direkte Aufruf des Zielverzeichnisses aus. In der mehrfach angesprochenen Batch-Datei von cygwin wird primär die bash aufgerufen mit folgenden parametern:

bash --login -i

Dieser Aufruf sollte/müsste ja wie Du bereits schreibst so modifiziert werden, dass der vom TC übergebene Parameter hier ausgewertet und durchgereicht wird.

Trotz durchforsten der bash man-pages erschliesst sich mir nicht, wie ich diesen Aufruf dahingehend modifizieren muss, dass direkt in ein angegebenes Verzeichnis gesprungen werden soll, was man hier ja möchte, um den cmd-Aufruf gänzlich durch den von cygwin zu ersetzen.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50768
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Mir ist das auch nur indirekt gelungen:

1. In die Datei /etc/profile folgende Zeile einfügen nach cd "$HOME":

cd "$STARTDIR"

2. In der Batchdatei vor dem Aufruf der bash folgenden Befehl einfügen:

set STARTDIR=/home/username/subdir

Damit es mit Kommandozeilenparametern geht, muss die Zeile

set STARTDIR=%1

lauten. Die cyg.bat einfach nach c:\ oder sonstwo in den Pfad schreiben.
Author of Total Commander
https://www.ghisler.com
total_user_123
Junior Member
Junior Member
Posts: 2
Joined: 2009-02-17, 13:23 UTC

Post by *total_user_123 »

danke, mehr oder minder funktioniert es. Allerdings hab ich probleme mit den berüchtigten Leerzeichen in Pfaden.

Escaping mit übergabe von double-ticks ("%P", "%1") funktioniert leider nicht.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3895
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Escaping mit übergabe von double-ticks ("%P", "%1") funktioniert leider nicht.
Beim Parameter "%P" muss in der cyg.bat statt dem %1 ein %~1 stehen um die Anführungszeichen wieder zu entfernen
#5767 Personal license
total_user_123
Junior Member
Junior Member
Posts: 2
Joined: 2009-02-17, 13:23 UTC

Post by *total_user_123 »

super, jetzt gehts.

btw.: microsoft sollte echt mal der prozess gemacht werden, dass die damals \ als pfad-trennungszeichen eingeführt und außerdem die leerzeichen hoffähig gemacht haben :evil:
Post Reply