「Windowsでのターミナル環境」の版間の差分

Notion-MW
Notion-MW
 
(同じ利用者による、間の4版が非表示)
22行目: 22行目:
たとえばテキストファイルに以下のように書いておけば、mpvが起動される。<strong>末尾の半角スペースも入れること。</strong>
たとえばテキストファイルに以下のように書いておけば、mpvが起動される。<strong>末尾の半角スペースも入れること。</strong>


<syntaxhighlight lang="vb.net">"C:\Users\username\Softwares\mpv\mpv.exe" </syntaxhighlight>
<syntaxhighlight lang="vb.net">"C:\Users\username\Softwares\mpv\mpv.exe"</syntaxhighlight>
Windows版のmpvは、設定ファイル(mpv.conf)やプラグインなどを自身が存在するディレクトリから読み込むが、それらの動作を維持したままで、.pathにはmpv.exeという呼び出し専用のファイルだけを配置することができる。
Windows版のmpvは、設定ファイル(mpv.conf)やプラグインなどを自身が存在するディレクトリから読み込むが、それらの動作を維持したままで、.pathにはmpv.exeという呼び出し専用のファイルだけを配置することができる。


39行目: 39行目:
上記と若干似ているが、PATHをはじめとした環境変数を変えることでプログラムがうまく実行されるようにしたい、という場合もある。この場合は、テキストファイルを以下のようにすればよい(Git Bashのフォルダをパスに追加し、<code>MYVAR</code>に<code>value1</code>をセットする例)。末尾の半角スペースはあってもなくてもいい。
上記と若干似ているが、PATHをはじめとした環境変数を変えることでプログラムがうまく実行されるようにしたい、という場合もある。この場合は、テキストファイルを以下のようにすればよい(Git Bashのフォルダをパスに追加し、<code>MYVAR</code>に<code>value1</code>をセットする例)。末尾の半角スペースはあってもなくてもいい。


<syntaxhighlight lang="bash">cmd /c path C:\Program Files\Git\usr\bin;%PATH% & set MYVAR=value1 & </syntaxhighlight>
<syntaxhighlight lang="bash">cmd /c path C:\Program Files\Git\usr\bin;%PATH% & set MYVAR=value1 &</syntaxhighlight>
こちらは、先ほどと違って、内部でGit Bashのコマンドを使用する(Git Bashとは無関係な)プログラムを実行する際などに有用である。
こちらは、先ほどと違って、内部でGit Bashのコマンドを使用する(Git Bashとは無関係な)プログラムを実行する際などに有用である。


また、これに類似のケースとして、環境変数の設定などを行うバッチファイルが既に用意されていてそれを使いたいという場合もある。例えば以下のようなテキストファイルを用いれば、実質的にVisual Studioの開発者コマンドプロンプト(Developer Command Prompt for VS 2022)の内部で与えられたコマンドを実行してくれるプログラムが作れる。
また、これに類似のケースとして、環境変数の設定などを行うバッチファイルが既に用意されていてそれを使いたいという場合もある。例えば以下のようなテキストファイルを用いれば、実質的にVisual Studioの開発者コマンドプロンプト(Developer Command Prompt for VS 2022)の内部で与えられたコマンドを実行してくれるプログラムが作れる。


<syntaxhighlight lang="python">cmd /c "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" &</syntaxhighlight>
<syntaxhighlight lang="python">cmd /c C:\PROGRA~1\MIB055~1\2022\Community\Common7\Tools\VsDevCmd.bat &</syntaxhighlight>
* ここでも短いパスを使用している。長いパスでも引用符で囲めばある程度うまく動作するが、<code>&amp;</code>の後にくるコマンドに引用符が含まれている場合にうまくいかない。
 
Linuxでも、例えば特定のvenv仮想環境の中で与えられたコマンドを実行するシェルスクリプトを全く同じ発想で作ることができる。
Linuxでも、例えば特定のvenv仮想環境の中で与えられたコマンドを実行するシェルスクリプトを全く同じ発想で作ることができる。


63行目: 65行目:
のようにする(<code>@</code>は、echo offを一時的に行うために必要である)。
のようにする(<code>@</code>は、echo offを一時的に行うために必要である)。


しかし、cmd.exeには、バッチファイルの実行中にCtrl+Cを送信すると「バッチ ジョブを終了しますか (Y/N)?」というプロンプトを表示するという厄介な仕様がある。そのため、先ほどの自作プログラムを使用するほうがスマートである。
しかし、cmd.exeには、バッチファイルの実行中にCtrl+Cを送信すると「バッチ ジョブを終了しますか (Y/N)?」というプロンプトを表示するという厄介な仕様がある。また、<code>%</code>で挟まれた環境変数(<code>%PATH%</code>など)が文字列として含まれていた場合に展開されてしまう。そのため、先ほどの自作プログラムを使用するほうがスマートである。


<span id="cygwin-msysmingw-git-bashの違い"></span>
<span id="cygwin-msysmingw-git-bashの違い"></span>
92行目: 94行目:
<li><p>詳しくは、「msys2_shell.cmd」を読んでみると良さそうである。MSYSTEM環境変数というのが重要そう。</p></li></ul>
<li><p>詳しくは、「msys2_shell.cmd」を読んでみると良さそうである。MSYSTEM環境変数というのが重要そう。</p></li></ul>
</li>
</li>
<li>[https://m-hiyama.hatenablog.com/entry/20151013/1444704189 Mingw&#45;w64/MSYS2 を入れなくても Git for Windows で間に合うみたい &#45; 檜山正幸のキマイラ飼育記 (はてなBlog)] Git BashはMinGW/MSYSベースなので、そちらと同様に、MSYSTEM環境変数を<code>MINGW64</code>に設定すると/mingw64/binがパスに入る。しかし、そのことによる実効的な違いはあまりない。ということらしい。
<li>[https://m-hiyama.hatenablog.com/entry/20151013/1444704189 Mingw&#45;w64/MSYS2 を入れなくても Git for Windows で間に合うみたい &#45; 檜山正幸のキマイラ飼育記 (はてなBlog)] Git BashはMinGW/MSYSベースなので、そちらと同様に、MSYSTEM環境変数を<code>MINGW64</code>に設定すると/mingw64/binがパスに入る。ここにはgit.exeが入っているが、git.exe自体は実は/cmdに入っているので、そのことによる実効的な違いはあまりない。ということらしい。
<ul>
<ul>
<li>ただgit以外にもxzコマンドとか/mingw64/binにしかないものもいくつかあるので、違いが全くないわけでもない。(なぜxzがこっちに入っているんだろう?)</li>
<li>ただgit以外にもxzコマンドとか/mingw64/binにしかないものもいくつかあるので、違いが全くないわけでもない。(なぜxzがこっちに入っているんだろう?)</li>