Переменные окружения в имени файла

Опубликовано в QLua

Иногда очень удобно в имени файла использовать переменные окружения DOS, такие как %windir% или %temp%.


-- заменяет в имени файла (строке) переменные окружения на их значения
function io.expand_envvar(path)
   return string.gsub(path,"%%.-%%", function (env_str) return os.getenv(string.gsub(env_str,"%%","")) end)
end

Результаты (на моем компьютере):

%temp%\file.ext                   C:\Users\8FEE~1\AppData\Local\Temp\file.ext
%windir%\file.ext C:\Windows\file.ext
%comspec% C:\Windows\system32\cmd.exe

 

 Функцию можно написать еще короче

function io.expand_envvar(path)
   return path:gsub("%%(.-)%%",os.getenv)
end

Архив QLua