Redline
AutoIT Гуру
- Сообщения
- 506
- Репутация
- 375
С помощью Dr.Web Live CD перенес файлы с упавшей Windows на рабочий комп. Все русские буквы в названиях файлах превратились в фарш :wacko: - даже в SciTE эти названия вставляются не так, как отображены в проводнике. Перелопатил Encoding UTF - безрезультатно. Помог Штирлиц (программа для перекодировки файлов и текстов) - сразу перекодировал как надо - кодировка UTF-8, но переименовывать гору файлов и папок по одному это не выход. Помогите с решением проблемы!
Вот название пары файлов из проводника и их перевод:
И пробный скрипт:
Нашел обходное решение - включаем в Штирлице слежение за буфером обмена - и через него гоняем имена файлов массивами :laugh:
Но решение на чистом AutoIT все еще ищется.
Вот название пары файлов из проводника и их перевод:
Код:
ÐнÑÑÑÑкÑÐ¸Ñ Ð¿Ð¾ ÑÑÑановке.htm
ÐÐÐЫРгÑаÑики 08-09днев.xls
Код:
Инструкция по установке.htm
НОВЫЕ графики 08-09днев.xls
Код:
#include <encoding.au3>
$search = FileFindFirstFile("*.htm")
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
$a = _Encoding_UTF8ToANSI(FileGetLongName($file))
MsgBox(0, '', $a)
MsgBox(4096, "File:", $file)
WEnd
; Close the search handle
FileClose($search)
Нашел обходное решение - включаем в Штирлице слежение за буфером обмена - и через него гоняем имена файлов массивами :laugh:
Код:
#include <array.au3>
$search = FileFindFirstFile("*.*")
Dim $arr[10], $arr2[10]
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
$nomer = 0
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
$arr[$nomer] = FileGetLongName($file)
$nomer += 1
WEnd
ClipPut(_ArrayToString($arr))
Sleep(2000)
$arr2 = StringSplit(ClipGet(), '|', 2)
For $i = 0 To UBound($arr) - 1
FileMove($arr[$i], $arr2[$i])
Next
FileClose($search)
Но решение на чистом AutoIT все еще ищется.