2017-02-08 5 views
0

죄송 합니다만, 질문 제목이 이해하기 어렵다면, 구절하기가 어려웠습니다. 다음과 같은 질문과 대답에 대해서는 bash (cygwin/mintty)의 Windows 바로 가기에서 매개 변수의 폴더 부분을 추출 할 수 있습니까?

:

open-cygwin-at-a-specific-folder

LindseyD의 대답에서 그것은 설치하는 방법 바로 가기 "sendto를"윈도우 폴더를 여는 방법을 알려줍니다. 사용 :

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bash 

이것은 정말 멋진,하지만 자주는 파일이 들어있는 폴더에서 오전, 그래서 다음 레벨을 가서 내가 가진이를 사용하면 폴더를 마우스 오른쪽 버튼으로 클릭하고 sendto를 할 ...

바로 가기에 전달 된 매개 변수가 폴더가 아닌 파일 경로 (예 : c : ... \ test.txt)이므로 파일에서 작동하지 않기 때문입니다. 그래서 파일을 마우스 오른쪽 버튼으로 클릭하여이 작업을 수행하는 방법을 알아 내려고 노력하고 있습니다.> sendto -> bash.

하지만 짧은 생각이 들었습니다. 내 생각은 $ 0에있는 경로를 추출하는 방법을 찾는 것이 었습니다. 하지만 이렇게하려면 유효한 구문을 찾을 수 없습니다.

how-to-open-a-cygwin-shell-at-a-specific-directory-from-netbeans

how-to-get-folder-path-from-file-path-with-cmd

batch-extract-path-and-filename-from-a-variable

그리고 많은 다른, 그러나이 중 어느 것도 변수 $ 0으로 적용 할 수 보이지 않는다 : 나는 다음에서 찾고있다. 예를 들어 ~dp&0을 사용할 수 없다는 것은 분명히 잘못되었습니다. 그러니 그것은 다음과 같이 수행, 또는 구문에 대한 이해가 잘못 할 수 없습니다

답변

1

O를 당신은 아마 chere 패키지를 찾고 있습니다

https://sourceware.org/ml/cygwin-announce/2014-02/msg00024.html

는 여기에 "bash는 프롬프트를 만들 수 있습니다

"탐색기 메뉴. 당신은 기본 디렉토리를 절대 유닉스 스타일에 대상 경로를 변환, 외부 전문

cd $(basedir $(cygpath -ua "$0")) 

과 같은 명령 (-c 인수의 값을) 시도 얻을 수

+0

고마워, 그 대답은 (그래서 그 +1),하지만 가능한 평범한 dos/windows/bash 도구를 고집하고 싶습니다. 이것은 새로운 소프트웨어 패키지를 승인 받기가 매우 어렵 기 때문에 ( –

+0

chere는 bash 스크립트입니다.) 탐색기에 대한 메뉴 항목을 만듭니다. – matzeri

0

(마우스 왼쪽 키), 디렉토리 변경.

따옴표를 이스케이프 처리하고 전체 문자열을 따옴표로 묶어야합니다.

이것은 chere과 유사해야하지만 파일의 상위 폴더에서 열립니다. 지금은 테스트 할 수 없지만 선택한 dir의 부모에서만 열릴 수 있습니다.

+0

이것은 나를 위해 작동하지 않았습니다. dos에서 이것을 시도했습니다 : 'C : \ cygwin \ bin \ mintty.exe -i /Cygwin-Terminal.ico C : \ cygwin \ bin \ bash.exe -l -c "cd $ (cygpath -ua \"c : \ dev \ test \ test.txt \ "))"; exec bash' 참고 : 단축키 내에서 사용하기 전에 DOS에서 실행할 수 있도록 전체 경로를 테스트로 사용했습니다. 회신을 통해 minty를 열었습니다 : basedir 명령을 찾을 수 없습니다 –

+0

죄송합니다. 나는'dirname'과'basename'의 이름을 섞어서 경로의 부분을 왼쪽과 오른쪽 (각각)을 경로의 가장 오른쪽/경로로 반환합니다. –

+0

아, 확인 np. 월요일에 내가 이걸 시험해 볼께. 내가 돌아 오면. –