WindowsでbashからTotal commanderを実行する


2

Windowsでbash(MINGW)からTotal Commanderを呼び出すエイリアス/関数をセットアップしようとしています。これまでのところ、私の試みはすべて失敗しました。

function tc() {
  dir="$1"
  if [ "$dir" == "" ]; then
    dir="."
  fi
  /c/TotalCmd/totalcmd.exe /O /L="`cygpath -wa $dir`" /R="`cygpath -wa .`" &

}

このソリューションには1つの欠点があります。TCは指定されたディレクトリで開かれますが、パスには追加/があります。これにより、1つのディレクトリを上に移動しようとすると、TCがルートに移動します。

ここに画像の説明を入力してください

このエイリアスを正しく動作させる方法を知っていますか?ありがとうございました!

回答:


1

$ dirパラメーターを引用する必要があります。そうしないと、cygpathの引数として3つ以上の文字列を指定している可能性があります(1番目の-wa、2番目の/ path /)。これは、$ dirパラメーターがパスにスペースを含むディレクトリを保持している場合にのみ問題になります。

IE

cygpath -wa "〜/ x / hello world"

とは異なります

cygpath -wa〜/ x / hello world

これはあなたのために働くはずです(私のためにやったように):

jaroslav@wraptor ~
$ function winPath { cygpath.exe  -wa -- "$1"; }
$ FreeCommander.exe C: "$(winPath /cygdrive/m/muzica/_christian_liturgy/\
    Athonite\ Fathers\ of\ St.\ Anthony\'s\ Greek\ Orthodox\ Monastery\ -\ \
    Vigil\ of\ St.\ Anthony/)"

ありがとう、それは私があなたの関数を使用していると:-(それを固定されていませんでした/c/TotalCmd/totalcmd.exe /O /L="$(winPath $dir)" &が、状況はまだ同じである私は腐った何かがTCであることを信じることを始めています...。
jasir

0

解決策は、ヤロスラフに感謝します!

function tc() {
  dir="$1"
  if [ "$dir" == "" ]; then
    dir="."
  fi
  /c/totalcmd/totalcmd.exe /O L="`winPath $dir`"
}

function winPath { cygpath.exe  -wa -- "$1"; }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.