Столкнулся с проблемой при работе скипта для транслитерации текста(записать русские буквы в латинском алфавите). При переименовании файла скрипт почемуто не хочет переименовывать файл если есть в имени пробел. Например: "Русский текст.txt" файл по неясной для меня причине не хочет переименовываться, хотя если работать со строками в тексте этой проблемы нет.
Код
--lua
log "clear" log "mode compact"
local path = [[D:\_NHL\End]] -- путь к папке
local POISK, count = dir (path, "*.txt", "norecursion") -- получить список всех файлов в формате 'txt', не включая файлы в подпапках
log ("Найдено файлов: " .. count)
if count then -- если файлы найдены
for i=1, #POISK do
log ("Работаем с: " ..POISK[i][1]) -- показать в логе список
local OldName = POISK[i][3] -- Текст который хотим написать на латинском алфавите
log ("Старое имя: " ..OldName)
local t = {}
t["А"]="A" t["Б"]="B" t["В"]="V" t["Г"]="G" t["Д"]="D" t["Е"]="E" t["Ё"]="E"
t["Ж"]="ZH" t["З"]="Z" t["И"]="I" t["Й"]="Y" t["К"]="K" t["Л"]="L" t["М"]="M"
t["Н"]="N" t["О"]="O" t["П"]="P" t["Р"]="R" t["С"]="S" t["Т"]="T" t["У"]="U"
t["Ф"]="F" t["Х"]="KH" t["Ц"]="TS" t["Ч"]="CH" t["Ш"]="SH" t["Щ"]="SHCH" t["Ь"]=""
t["Ъ"]="" t["Ы"]="Y" t["Э"]="E" t["Ю"]="YU" t["Я"]="YA"
t["а"]="a" t["б"]="b" t["в"]="v" t["г"]="g" t["д"]="d" t["е"]="e" t["ё"]="e"
t["ж"]="zh" t["з"]="z" t["и"]="i" t["й"]="y" t["к"]="k" t["л"]="l" t["м"]="m"
t["н"]="n" t["о"]="o" t["п"]="p" t["р"]="r" t["с"]="s" t["е"]="t" t["у"]="u"
t["ф"]="f" t["х"]="kh" t["ц"]="ts" t["ч"]="ch" t["ш"]="sh" t["щ"]="shch" t["ь"]=""
t["ъ"]="" t["ы"]="y" t["э"]="e" t["ю"]="yu" t["я"]="ya"
t[" "]="-" --пробел заменять на тире
local NewName = string.gsub(OldName, "(.)", t) -- поиск и замена текста из таблицы 't'
log ("Транскрипции имени: " ..NewName)
local NewPathAndName = POISK[i][2]..NewName..POISK[i][4]
log ("вывести н. путь и имя: " ..NewPathAndName)
filerename (POISK[i][1], NewPathAndName) -- переименовать Иванов.txt в Ivanov.txt
log ("---")
end
end