「Windowsでエクスプローラーからフォルダを各種ターミナルで開く」の版間の差分
Notion-MW タグ: 差し戻し済み |
Notion-MW タグ: 手動差し戻し |
||
302行目: | 302行目: | ||
たとえば以下のようなvbsを用意する。 | たとえば以下のようなvbsを用意する。 | ||
<syntaxhighlight style="margin-bottom:0.2em;" lang="vb.net">Dim objShell | |||
Set objShell = CreateObject("WScript.Shell") | |||
< | |||
Dim objShell | |||
Set objShell = CreateObject( | |||
objShell.CurrentDirectory = WScript.Arguments(1) | objShell.CurrentDirectory = WScript.Arguments(1) | ||
objShell.Run(WScript.Arguments(0)),,False</ | objShell.Run(WScript.Arguments(0)),,False</syntaxhighlight> | ||
<div style='text-align: center;'>startatdir.vbs</div> | <div style='text-align: center;'>startatdir.vbs</div> | ||
491行目: | 488行目: | ||
<li><p>vbsの例</p> | <li><p>vbsの例</p> | ||
<p>次の節で解説する「(自分が起動された)カレントディレクトリでの起動」にも対応している(引数がない場合)。</p> | <p>次の節で解説する「(自分が起動された)カレントディレクトリでの起動」にも対応している(引数がない場合)。</p> | ||
< | <syntaxhighlight lang="vb.net">Dim objShell | ||
Dim objShell | |||
Dim curDir | Dim curDir | ||
Set ws = CreateObject( | Set ws = CreateObject("Wscript.Shell") | ||
Dim dir | Dim dir | ||
If WScript.Arguments.Count = 0 Then | If WScript.Arguments.Count = 0 Then | ||
502行目: | 498行目: | ||
dir = Wscript.Arguments(0) | dir = Wscript.Arguments(0) | ||
End If | End If | ||
dir = Replace(dir, | dir = Replace(dir,"%","==%") | ||
ws.run | ws.run "powershell -Command ""& {Start-Process -Verb Runas -Filepath wt -Argumentlist powershell, -noexit, -command, Set-Location, -LiteralPath, ('\""'''+($args[1].Trim('\""') -replace '''', '''''' -replace ';', '\;' )+'''.Replace(''==%'',''%'')\""')}"" --% ""\"""&dir&"\""""", vbHide | ||
Set objShell = Nothing</ | Set objShell = Nothing</syntaxhighlight></li></ul> | ||
</li> | </li> | ||
<li><p>cmd</p> | <li><p>cmd</p> | ||
515行目: | 511行目: | ||
<p><code>"C:\Program Files\Git\usr\bin\sh.exe" "C:\path\to\gb-wt-admin.sh" "%V"</code></p> | <p><code>"C:\Program Files\Git\usr\bin\sh.exe" "C:\path\to\gb-wt-admin.sh" "%V"</code></p> | ||
<p>で、<code>gb-wt-admin.sh</code>の中身は以下。</p> | <p>で、<code>gb-wt-admin.sh</code>の中身は以下。</p> | ||
< | <syntaxhighlight lang="bash">#!/bin/sh | ||
#!/bin/sh | |||
IFS= | IFS= | ||
LANG=en_US.UTF-8 | LANG=en_US.UTF-8 | ||
echo $*|/bin/sed 's/\\/\\\\/'|/bin/cygpath -f -|printf %q $(/bin/cat) |/bin/sed | echo $*|/bin/sed 's/\\/\\\\/'|/bin/cygpath -f -|printf %q $(/bin/cat) |/bin/sed "s/'/''/g;s/%/==%/g;s/;/\\\\;/g"|/bin/xargs -d '\n' -I {} powershell -Command Start-Process -Filepath wt -ArgumentList "'"'"C:\Program Files\Git\usr\bin\env.exe"'"'" , '"MSYSTEM=MINGW64"' , "'"'"C:\Program Files\Git\usr\bin\sh.exe"'"'" , "'--login'", "'-c'", "'"'"IFS=\;cd $(echo {}| /bin/sed s/==%/%/g) \; exec bash"'"'"</syntaxhighlight> | ||
<p>Cygwinも同様である。</p></li></ul> | <p>Cygwinも同様である。</p></li></ul> | ||