• ベストアンサー

環境変数TMPとTEMPの関係

NT4およびW2Kでは、環境変数TMPとTEMPがデフォルトで同じ内容が登録されているようですが、これらはどういう関係なんでしょうか? それぞれに異なる内容をセットして、いくつかアプリケーションを動作させたところ、TEMPではなく、TMPが使用されていました。 "TEMPは歴史的な理由で存在するだけで、基本はTMP"と想像しているのですが…

質問者が選んだベストアンサー

  • ベストアンサー
  • KojiS
  • ベストアンサー率46% (145/312)
回答No.1

どちらかというと、TMPが歴史的な理由で「使われている」ですね。MS-DOSソフトも基本は TMPです。 ただ、unix等の他のOSと一緒くたに考えると、どちらも使うということになります。まあ、通常は同じ内容を設定しておいてください。

ccsakiyama
質問者

お礼

ご回答ありがとうございます。 先の質問では、なぜこのような疑問をもったのかを説明していませんでしたので、ここで説明させてください。 PC起動時に不要な(=古い)一時ファイルを削除するプログラムを作成しようとしておりますが、TMPとTEMPのどちらを見たらよいか分からなかったため、先の質問をしました。 >ただ、unix等の他のOSと一緒くたに考えると、どちらも使うということになります。まあ、通常は同じ内容を設定しておいてください。 Microsoftは、TMP流とTEMP流のどちらの流派も受け入れるため、TMPとTEMPを設定するようにしている、と解釈しました。 このMSの方針に従うのなら、前述のプログラムはTMPとTEMP両方見たほうが良いようですね。

その他の回答 (2)

  • KojiS
  • ベストアンサー率46% (145/312)
回答No.3

>とりあえず、対象のPCは個人個人に与えられたものではなく、定型業務専用のものなので、インストーラなどの存在は考慮する必要はないのですが、ほかにも何か、思いもよらない問題がありそうですね。 > 起動時に動作するサービス(TMPを使うのは非常にまれですが)や、スタートアップ(レジストリも含む)に登録されているアプリケーションが TMPを使って作業ファイルを書いている場合も考えられます。 タイミングの問題ですが、注意しましょう。 (まあ、オープンされてたら削除エラーになりますが、オープンされたままにはなっていないということも考えて) よく、オンラインソフトなどで TMPフォルダを自動削除する物もありますが、僕はお薦めできません。(ただ、ゴミを残すプログラムが多すぎるんですよね。マイクロソフト純正の物も含めて)

ccsakiyama
質問者

お礼

ご指摘ありがとうございます。 対象PCでは、スタートアップ時に他のアプリケーションなどが動作しないことは確認しました。 >(ただ、ゴミを残すプログラムが多すぎるんですよね。マイクロソフト純正の物も含めて) そうですね。今回のプログラムを作るにあたって自分のPCのTMPディレクトリを確認したのですが、ハングアップなどほとんどしていないにもかかわらず、大量のファイルが残っていて驚いてしまいました。

  • KojiS
  • ベストアンサー率46% (145/312)
回答No.2

> PC起動時に不要な(=古い)一時ファイルを削除するプログラムを作成しようとしておりますが、TMPとTEMPのどちらを見たらよいか分からなかったため、先の質問をしました。 > 注意しなければいけないのは、TMPの指すフォルダに起動時に必要なファイルがあるかもしれないということですね。 インストーラーなど、途中で再起動して、再起動後そのまま続けたりする物は、TMPフォルダに必要なファイルが入っていたりします。 使用者に注意を促すということで良いとは思いますが。

ccsakiyama
質問者

お礼

ご忠告ありがとうございます。 とりあえず、対象のPCは個人個人に与えられたものではなく、定型業務専用のものなので、インストーラなどの存在は考慮する必要はないのですが、ほかにも何か、思いもよらない問題がありそうですね。 (プログラムが完成したら、自分のPCにも入れてしまおうかと思ってましたが、やめておきます。)

関連するQ&A

  • TEMP,TMPフォルダの位置

    初めまして、早速質問させていただきますが、 WINDOWSの「TEMPフォルダ」と「TMPフォルダ」の場所(値)を誤って変更してしまい、困っております。デフォルトの場所をご存知の方がおられましたら、是非教えてください。 ちなみに コントロールパネル→システムとメンテナンス→システム→システムの詳細設定→環境変数の場所にある「TEMP」と「TMP」の値です。 どうぞ、宜しくお願いいたします。

  • 「Tempフォルダの場所を変更する」について

    ↓こちらのURLに載っている手順に関する質問です http://www.atmarkit.co.jp/fwin2k/win2ktips/389extprec/extprec.html 「Tempフォルダの場所を変更する」手順が載っていますが、その手順 「SETコマンドを実行し、TMPとTEMP環境変数の内容を確認」 が分かりません。 1.具体的に、どの様なSETコマンドを入力すれば良いのか? 2.「環境変数の内容を確認」とは 「どの部分」が「どうなっていれば良いのか」 お願いします

  • 環境変数TEMPについて、設定内容と echo %TEMP% の出力とが異なる原因として考えられるのは?

    みなさんこんばんは。 Windows 2003 x64 Editionにて、環境変数TEMPをシステム環境変数にて以下のように設定しています。 TEMP=C:\TEMP この状態で、コマンドプロンプトを起動し、echo %TEMP% と実行すると、 C:\TEMP\1 と表示されます。 実際に、(どのタイミングでかは定かではありませんが)C:\TEMP\1も作成されていました。 こちらの環境では、ユーザー環境変数では指定していません。 また、システム環境変数の設定は、マイコンピュータ>プロパティ>詳細設定>環境変数 から設定しています。 レジストリエディタ内でも、C:\TEMP として保存されていることは確認しています。 なぜ、echo %TEMP% を実行すると"\1"が追加されるのか、原因がわかる方いらっしゃいませんか。 もしくは、ここをチェックしてみたら?というアドバイスでも助かります。 ちなみに、コマンドプロンプトで set TEMP=C:\TEMP と実行しておくと、次に echo %TEMP% を実行した結果は C:\TEMP となり、\1はつきませんでした。 また、新しくユーザーを作成してそのユーザーでログオンしたところ、echo %TEMP% の結果は C:\DOCUME~1\<ユーザー名>\LOCALS~1\Temp\2 となりました。 このユーザーでは環境変数類は変更しておらず、ユーザー環境変数にてデフォルトで以下のように設定されています。 %USERPROFILE%\Local Settings\Temp OSのセットアップは当方で実施していないため、 Windows 2003の仕様なのか(x64だから??)、 当方の環境の特殊な設定なのかの判断がついていません。 特殊な設定といっても、Windowsでレジストリに登録されている環境変数をさらに上書きする設定がどこで行われているのか、さっぱり見当つかない状況です。 UNIXなら/etc/environmentとか.loginとか.cshrcとか、いろいろと確認ポイントはあると思うのですが・・・ どなたかピンときた方、よろしくお願いします。

  • ■特急help!■環境変数でTEMP/TMPを変更!OEのメ-ル文消失■

    大至急教えて/助けて下さい。 HDDを2台接続しそれぞれ2分割しボリュ-ムを、 HDD1台目はHDD-1-1と-1-2としています。 OSはXP-PROでc(HDD-1-1):ドライブに入っています。 ドライブ構成は以下の通りです。 d:CD-ROM e:HDD-1-2 f:HDD-2-1 g:HDD-2-2 WINDOWSを軽くしたかったのでWINDOWSが使うテンポラリフォルダ(TEMP/TMP)を、物理的に分離した別のHDDへ移動設定する/したつもりでした。 安直に下記手順で、変更したところOE(アウトルックエクスプレス)のメ-ル本文が全て消失(?)/見えなくなってしまいました!!。 『スタ-ト』⇒『コントロ-ルパネル』⇒『システム』⇒『詳細設定』タグ⇒『環境変数』⇒『TEMP』を選択⇒『編集』⇒『f:Temp』へ変更。⇒『TMP』を選択⇒『編集』⇒『f:Temp』へ変更。 IEの動作は一見、別段正常の様ですが全く自身ありません。 OEの障害を解決する方法を■特急■で、ご指導下さい。 環境変数を元に戻す方法も教えて下さい。 宜しくお願い申し上げます。

  • 環境変数の設定

    PC(WinME)にjavaの開発環境を入れようと、java入門書に付随していた CD-ROMからJDKをインストールしたのですが、MS/DOSプロンプトから 環境変数の設定の有効を確かめようとするのですがMS/DOSプロンプトで c:\WINDOWS> ↑のあとにjavacと打つと、「コマンドまたはファイル名が正しくありません」と 出てしまいます。どうしたらよいのでしょうか? c:\autoexec.batは、以下の通りです。 SET windir=C:\WINDOWS SET winbootdir=C:\WINDOWS SET COMSPEC=C:\WINDOWS\COMMAND.COM SET PROMPT=$p$g SET TEMP=C:\WINDOWS\TEMP SET TMP=C:\WINDOWS\TEMP SET PATH=C:\SDK1.3.1\bin;%PATH%(ここだけ入力しました。) わかる方いましたらよろしくお願いします。

  • DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?

    DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか? 例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。 set VAR="TMP" if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%) echo %TEST% ここで求めている挙動は、SET TEST=%%VAR%%の命令によって SET TEST=%TMP% → SET TEST=C:\Windows\Temp のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。 なにか良い方法がないでしょうか?

  • 環境変数TEMPを使用するアプリがアクセスエラー

    下記のエラーメッセージが表示されてアプリケーションが動作しないのですが、 Windowsって、環境変数TEMPにアクセスエラーでファイルが書き込めない場合ってあるものなのでしょうか? また、何が原因でこのような状態になるのでしょうか? エラー: TEMP ディレクトリへのアクセスが拒否されました。XmlSerializer を実行している ID '{0}' に、TEMP ディレクトリへのアクセスに必要なアクセス許可がありません。CodeDom では、プロセスが使用しているユーザー アカウントを使用してコンパイルしようとするため、ユーザーが TEMP ディレクトリへのアクセス権を持っていない場合、コンパイルはできません。TEMP ディレクトリの場所を見つけるには、Path.GetTempPath() API を使用してください。 とのエラーが発生します。 環境 .NET Framework2.0(C#/WinForm) Windows7 補足 TEMPの内容 Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」 となっており、問題は無さそうです。 テストプログラムのエラー(添付にファイル作成) System.UnauthorizedAccessException: パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。 以上

  • TEMPフォルダのデフォルトの場所について(Windows2000 と XP)

    Windows2000 や WindowsXPの マイコンピュータを右クリック →システムのプロパティ →詳細設定 →環境変数 の中のTEMPの場所がデフォルトでは Document and Settingsの中にあると思うのですが それを Cドライブの直下にTEMPフォルダを作り 環境変数 TEMP と TMPについて どちらもそのフォルダを指定するというのが どこかに書いてあったのですが、 それには何か理由があるのでしょうか? 別のドライブを指定するなら、 ファイル容量の観点から意味があると思うのですが 同じくCドライブだし。。 どなたか何か知りませんでしょうか? 教えて下さい。宜しくお願いします。

  • TexPointがインストールできません・・・

    Ghostscriptの環境変数設定に戸惑っております。マニュアルどおり環境変数を設定したのですが、TexPointはインストールされていませんでした。そこでそのマニュアルに注意点が書いてあったのですが、どう確かめて、変更したらよいのかわかりません。それは 『 ひとつ注意が必要です。つまり環境変数 TEMP に日本語が混じっていると失敗します。特に Windows NT や Windows 2000 でユーザ名に日本語を使用していると、TEMP に日本語が混じっていることがあります。あらかじめ echo %TEMP% として確かめ、日本語が混じっていたらset TEMP=d:\tmp など、適当に日本語を使用しないものに変更して下さい。』 というものです。OSはXPですが、Windows NT やWindows 2000と同じ系統と考えていいそうです。また、ユーザー名には日本語を使用しております。 どうぞ宜しくお願いいたします。

  • excel vba で変数に格納そして取り出し方

    参考書、相談室で教えて頂き、何とかなっておりましたが、変数に格納、その数値を取り出すことについて、基本的な事をもう一度基本を教えて頂けませんか。 今,sheet2の、b3セルの数値が変化しています、それをSheet1のb3セルが参照しています。 そのsheet1の参照セルの数値を変数に格納し、それを読み出して使いたいのですが、うまくできません、どのように考えたらいいのですか。現在は、下記コードの、k、の引き数の変化ができなく暗礁に乗り上げております。 set temp = worksheets(("描画").shapes.addTextbox(mosTextboxorientationHorizontal.86,k,66,18) の、,k、の数値を変化させたいのですが出来ません。 sheet1のセルの数値を変化させないで、一つの数値に固定すれば、問題なく目的の描画が行われます。 変数に格納、for....nextで取り出して等いろいろ試みましたが、参照セルが変化すると描画しません。 申し訳ありませんが、もう一度教えて頂けませんか。