Переменные окружения в имени файла
Иногда очень удобно в имени файла использовать переменные окружения 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 ExpandEnvironmentString(str)
{ local ws;
ws = CreateObject("WScript.Shell");
return ws.ExpandEnvironmentStrings(str);
}
В конце путей добавляет число "1".
Как избавиться?
gsub вторым параметром возвращает количество замен. В вашем случае заменв была одна.
Соответственно и вся функция возвращает 2 значения, второе из которых как раз ваша единица.
Хотите от нее избавиться ? Заключите в скобки выражение после return
return (string.gsub( ............. end))
Спасибо за помощь и за отзывчивость, всё работает!
RSS лента комментариев этой записи