PATH を読み取ってファイルに保存する小さなスクリプトがあり、これを毎日実行するようにスケジュールしたいと考えています。
path = os.getenv("PATH")
file_name = "C:\\temp.txt"
file = io.open(file_name, "w")
file:write(path)
file:close()
コマンドラインから実行すると機能しますが、バッチファイルを作成して(Windows XPで作業しています)ダブルクリックすると、os.getenv( "PATH")がfalseを返します。バッチ ファイル:
"C:\Program Files\Lua\5.1\lua" store_path.lua
この質問へのコメントで、「プロセス環境変数ではなく、シェルによって提供されるため、機能しません」と読みました。実際、他のいくつかの環境変数 (ユーザー名など) は正常に機能します。
私が持っている2つの質問は次のとおりです。
- シェルが PATH にアクセスできないのはなぜですか? 環境のコピーを作成すると思いました
(env変数の設定のみが問題になります)? - スケジューラーに追加できるように PATH を読み取る最良の方法は何でしょうか?