環境変数TEMPの設定内容と出力結果の不一致の原因を考える

このQ&Aのポイント
  • 環境変数TEMPの設定内容とecho %TEMP%の出力が異なる原因について、Windows 2003 x64 Editionでの事例を取り上げて考察します。
  • 環境変数TEMPをシステム環境変数として設定し、コマンドプロンプトでecho %TEMP%を実行すると、異なる結果が表示される問題について考えます。
  • Windows 2003の仕様や特殊な環境設定、レジストリの影響などが原因として考えられます。解決策や確認ポイントについても探求します。
回答を見る
  • ベストアンサー

環境変数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とか、いろいろと確認ポイントはあると思うのですが・・・ どなたかピンときた方、よろしくお願いします。

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

  • ベストアンサー
  • asdf24
  • ベストアンサー率54% (27/50)
回答No.1

ターミナルサービス使ってませんか? ターミナルサービスを使ってる場合TEMPの下にlogonIDでサブフォルダが作られます。 http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/serverhelp/a22455e2-5f63-40c1-b41e-cc11bc517078.mspx

unixuser07
質問者

お礼

使ってます! まさにこの事象ですね。 いろいろ検索したのですが、情報にたどりつけませんでした。 asdf24さんありがとうございました!

関連するQ&A

  • バッチファイルで環境変数が設定されません

    よろしくお願いいたします。 Windows XP Pro の command.com において、バッチファイルの中で set コマンドを使って環境変数を設定しても、バッチから抜けると環境変数の設定ができていません。 バッチ終了後の環境変数は全てバッチ開始前と同じ状態です。 command.com のプロンプトで set コマンドを実行すると、環境変数はセットした内容に変化もしくは追加されます。 cmd.exe ではバッチからでもプロンプトからでも set コマンドで環境変数を操作できます。 なぜ command.com 上のバッチから操作できないのかわからず、不便でかないません。 アドバイスをよろしくお願いいたします。 @echo off set foo=word path=c:\ echo %foo% echo %path% 上記バッチを実行すると word c:\ と表示されますが、set コマンドで確認すると FOO は存在しません PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;... と表示されます。 これはバッチ実行前の値です。

  • 環境変数

    ユーザー環境変数のTEMPの変数値をいじくったら、コマンドプロンプトでnotepad~と打ってもメモ帳が開けなくなりました。 もとの変数値に戻したいのですが、変数値がわかりません。 どうすればわかりますか?

  • ユーザdosプロンプトの環境変数の編集

    ユーザとしてログオンしたときのコマンドプロンプトの環境変数のpathを、あらかじめ設定しておく(コマンドプロンプトを起動したときそれが設定されている)方法についてです。 スタートからコンピュータを右クリックのプロパティの環境変数の編集では、管理者権限でないので編集できません。 ならば管理者権限でログオンまたは、一時的に管理者権限でコマンドプロンプトを実行(コマンドプロンプトのショートカットを右クリックから管理者として実行)後に、前記環境変数の編集では管理者としてのコマンドプロンプトの編集であって、ユーザとして使う環境変数の編集にならず使えません。 どうすれば、ユーザで立ち上げたときのコマンドプロンプトの環境変数を編集できるでしょうか。 アプリのインストール時には任意に設定されるので、そのような設定機能のwindows関数が多分あるのでしょうが、ディスクトップからやりたいのです。レジストリ操作でもよいです。

  • 環境変数「%USERPROFILE%」の内容をバッチファイルで設定したい

    以前、以下のような質問をした者です。 <<http://oshiete1.goo.ne.jp/qa2688460.html>> 上記質問を踏まえて自分が作成したファイルは、 ・ファイル名「OVERRIDE_SET.reg」 ・ファイル内容 「 1行目: Windows Registry Editor Version 5.00 2行目: [HKEY_CURRENT_USER\Environment] 3行目: "OVER_RIDE"="%USERPROFILE%" 」 という内容でユーザー環境変数に  変数名:OVER_RIDE(仮名称)  変数値:%USERPROFILE%      (値には↑の文字列が入るが表示は「C:\Documents and Settings\(ユーザー名)」) を設定できました。 しかし、 変数値が「%USERPROFILE%」では、あるソフトを動かす際にエラーになってしまいました。 手操作で変数値「%USERPROFILE%」を「C:\Documents and Settings\(ユーザー名)」と「%USERPROFILE%」が示す文字列を実際に打ち込んだところ エラーは解消できました。 バッチファイルにて「%USERPROFILE%」の部分を、 「C:\Documents and Settings\(ユーザー名)」にするには どうすればよいでしょうか? 実行環境はOS、WindowsXPかWindows2000を予定しています。

  • 環境変数の設定

    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%(ここだけ入力しました。) わかる方いましたらよろしくお願いします。

  • Windowsの環境変数の設定方法について質問です。

    Windowsの環境変数の設定方法について質問です。 通常、マイコンピュータのプロパティから設定できることはわかっています。 しかし、この環境変数の設定には存在しない環境変数が、 コマンドプロンプトからsetを実行すると表示されます。 具体的に言うと、LANGという環境変数です。 この内容を削除したいのですが、どうすればよいのでしょうか。 set LANG= をすれば、そのコマンドプロンプトでは削除できますが、そのコマンドプロンプト以外では変わりません。 ※もともと使用していた人間がそのように設定したのでしょうが、突然、行方をくらましたため、設定方法がわかりません。

  • ユーザの環境変数、システム変数をコマンドプロンブトに一挙に表示させる方法は?

    宜しくお願い致します。 Windows2000を使用しています。 ユーザの環境変数、システム変数の一覧をコマンドプロンプトに 表示させる方法はないものでしょうか? 逐一、 $ echo %変数名% とやっていくしかないのでしょうか?

  • 環境変数の再帰展開について

    環境変数の中で環境変数を使用したときに、 こちらの思ったように文字列が展開されません。 例. システム環境変数 SystemDrive=C: WORK_PATH=%SYSTEMDRIVE%\temp PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem ユーザー環境変数 PATH=%WORK_PATH%;%PATH% こんな感じでセットされている場合、 コマンドプロンプトでset PATHした場合の結果が異なります。 Vistaでは C:\temp;C:\WINDOWS~ と展開されますが、 Windows XP環境では %SYSTEMDRIVE%\temp;C:\WINDOWS~ と、 %SYSTEMDRIVE%の部分がそのままになってしまいます。 Windowsの環境変数には2種類の属性があり、 上記の環境変数を登録する際は"展開可能"属性にしました。 またレジストリの"Command Processor\EnableExtensions" も1になっていることを確認しています。 ちなみにset WORK_PATHとしたときは、 両方の環境で C:\temp と表示されることから、 環境変数の再帰展開がうまく機能していないと思われます。 XP環境でもVista環境と同じように環境変数の再帰展開をすることは可能でしょうか?

  • 環境変数TEMPの設定変更について

    皆さま、よろしくお願いいたします。 現在、環境変数TEMPとTMPを内蔵の独立したDドライブのHDDに設定しています。 理由はC・SSDの容量が120GBのウインドウズ10では少ないSSDでした。最近、SSDを512GBに交換いたしました。環境変数TEMP、TMPの設定を既定のCに戻すにはどのようにしたら良いでしょうか?ご教示のほど、よろしくお願いい申し上げます。

  • Office2007における環境変数の設定について

    はじめまして。 Office2007Professional plusをOffice2003Professionalよりアップグレードして使用しています。 アップグレードしてから、OutlookとWordを起動すると、「作業ファイルが作成できません。環境変数TEMPの設定を確認してください。」というエラーが発生するようになりました。 このエラーを解決するために、システムのプロパティからユーザー環境変数、システム環境変数の設定を確認したのですが、ユーザー環境変数が「C:\TEMP」、システム環境変数が「C:\Windows\TEMP」となっており、特に問題がないようでしたので、解決法が見つからず、困っています。 このエラーのために、wordでのファイル保存が出来ないようなので、解決法をご存知の方がいらっしゃいましたら、ご教授お願いします。