問題
問題は、Windows XPの環境変数が1024文字に制限されていることです。 ほとんどのユーザーにとってこれは問題ではありませんが、私を含む一部の人にとっては、問題は突然始まりました。 以前にコマンドラインで使用したプログラムが突然見つかりませんでした。 インターネットでの検索では、おそらく問題は環境変数の長さの制限であることが示唆されました。
Emacsを使用して修正してみましょう。
解決策
Emacsが実行されているので、PATH変数に何があるか見てみましょう
たくさんのこと。 さらに、多くのパスにはディレクトリのフルネームが含まれます。たとえば、
C:\ Program Filesまたは
C:\ Documents and Settingsです。 長さを確認する
これらすべてを差し引くのが良いことは明らかです。 Emacsから直接やってみましょう。 Windowsバージョンには、関数
w32-short-file-name
があります。これはWin32 API関数へのインターフェイスであり、ファイルへのパスを含む行で呼び出されると、いわゆる8.3形式でパスを返します。
まず、
PATH
変数を
PATH
ます。
リストの各要素に
w32-short-file-name
関数を適用し、「;」を使用して要素を収集して文字列に戻します。
mapconcat
関数を使用する
mapconcat
として。
結果の文字列の長さを確認します
とにかく、結果の文字列が長すぎます。 ただし、
delete-dups
を
delete-dups
重複するアイテムを
delete-dups
できます。 文字列を要素に戻し、重複を削除し、
mapconcat
を使用して収集します。 今回は、リストアイテム自体を返す
identity
関数を使用します。
長さは私たちにとって非常に適切であり、すでにこの行を使用できます。 一時バッファーに出力します
結果のウィンドウCx oに移動して、行Ca、Cs "、Ret、C-space、Cs"、Ret、Mwをコピーします。
[コンピューターのプロパティ]を開き、[詳細設定]タブ、[環境変数]、[システム変数]の順に移動し、[
パス]変数までスクロールして、値を新しい値に変更します。
出来上がり。 コマンドラインのプログラムは再び機能します。
もちろん、主なことはEmacsが機能することです。