2012-11-18 26 views
1

我正在試圖實現這一目標。我通過Stack讀取了很多問題 溢出,但它們不起作用。我試圖在console2上打開一個選項卡,打開作爲參數傳遞給它的路徑上的Cygwin。在作爲第一個參數傳遞給bash.exe的路徑上打開Cygwin

爲CMD.EXE,是很容易的:

cmd.exe %1 

對於Cygwin的,這看起來真的很辛苦:

bash --login -i -c 'cd `cygpath \'D:\Program Files\'`;exec bash' 

這裏的問題是,有沒有空格路徑它運作良好,有空間,它不起作用。另外,我不知道如何將一個參數傳遞給它,也許$ 1或%1?

編輯1:

幾乎那裏,我創建了一個應該直接運行,而不是bash.exe這個批處理文件:

@echo off 

set CHERE_INVOKES=%CD% 
set TORUN="D:\Program Files\Cygwin\bin\bash.exe" --login -i -c 'cd "%CHERE_INVOKES%"; exec bash' 
echo %TORUN% 
call %TORUN% 
PAUSE 

這適用於除所有路徑C:(和D :),原因? Windows是愚蠢的,而不是有一個名爲C:的路徑,它有一個名爲C:的路徑!所以,雖然所有路徑結束沒有反斜槓,第一條路徑結束它,讓我生氣!

回答

1

這裏是解決方案:

@echo off 

set CHERE_INVOKES=%CD% 
::Remove trailing slash if required 
IF %CHERE_INVOKES:~-1%==\ SET CHERE_INVOKES=%CHERE_INVOKES:~0,-1% 

set TORUN="D:\Program Files\Cygwin\bin\bash.exe" --login -i -c 'cd "%CHERE_INVOKES%"; exec bash' 

call %TORUN% 

我加入這個代碼這個問題:Remove Trailing Slash From Batch File Input

::Remove trailing slash if required 
IF %CHERE_INVOKES:~-1%==\ SET CHERE_INVOKES=%CHERE_INVOKES:~0,-1% 

這樣,我可以使用此批處理文件來打開Console2 Cygwin的電流路徑上。

1

對我來說,下面的命令作品:

c:\cygwin\bin\bash --login -i -c "cd '%~1'; exec /bin/bash.exe" 

%~1%1擴展刪除任何引號(「) - 見help for在命令提示符下

參見:chere包在Cygwin中。 ,ConEmu終端:)

相關問題