4

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つの質問は次のとおりです。

  1. シェルが PATH にアクセスできないのはなぜですか? 環境のコピーを作成すると思いました
    (env変数の設定のみが問題になります)?
  2. スケジューラーに追加できるように PATH を読み取る最良の方法は何でしょうか?
4

1 に答える 1

3

シェル変数を取得できるように、シェルからバッチ ファイルを実行します。

cmd /c C:\path\to\lua myfile.lua
于 2013-04-30T14:59:12.847 に答える