![]() |
FTP vs. 'я' или "о проклятой протоколом букве"
Согласно RFC 959 протокол FTP не понимает русскую букву «я». Происходит это потому, что в кодировке cp1251 эта буква кодируется как «FF». А это окончание передачи данных. Таким образом мы получаем особенность не позволяющую скачивать с FTP файлы и директории содержащие букву «я». (c)
Кроме того как-то было дело настраивалась синхронизация с FTP. Но то была преамбула, амбула у нас впереди. Повадились пользователи файло в папки обменочные закидывать с той самой проклятой протоколом буквой, а они (файлы) от этого немного совсем не копируются, посему было принято решение переименовывать файлы (менять "я" на "Я"). Теперь наконец два вопроса для тех кто еще не окончательно заколебался читать вышеизложенную белиберду. - Возможно ли реализовать описанное выше на cmd/bat? - Возможно ли каким-то красивым образом дополнить то, что было сделано ранее, дабы не плодить лишние задачи в шедулере? |
Цитата:
|
Iska, переименование файлов. Например чтобы файл с именем "показатели мятателей молота.xlsx" был переименован в "показатели мЯтателей молота.xlsx"
|
Код:
@echo off |
Цитата:
Весьма круто, спасибо. |
Цитата:
Строчная буква "я" "проклята" не только "протоколом", но и интерпретатором командной строки, во всяком случае, в современных ОС Windows. Информация к размышлению (Windows 8.1): код пакетного файла в кодировке Win-1251: Код:
@>.txt ( вывод результата в файл: Цитата:
код пакетного файла в кодировке Win-1251: Код:
@<nul>.txt ( вывод результата в файл: Цитата:
|
Georgio, никто и не обещал работоспособность пакетных файлов в кодировке, отличной от OEM.
|
Цитата:
Я обещаю:). Iska, как Вы предлагаете вывести в файл символ "я" (именно символ с кодом "0xFF"), сохранив пакетный файл Код:
@<nul>.txt set/p="я" |
Georgio,
chcp 1251 Код:
@echo off |
Foreigner, всё верно. Когда писал:
Цитата:
я это и имел в виду. И это как раз пример того, что именно сохранение самого пакетного файла в кодировке OEM-866 приводит к его неработоспособности. А символ "я" очень актуален для пакетных файлов, например, тогда, когда нужно вставить BOM: Код:
@>nul chcp 1251 |
Цитата:
Цитата:
Например, вот так: Код:
@echo off Update: движок форума подменил символ с кодом 0xFF на звёздочку. Я пользовался редактором Far Manager'а. |
«Какьие ваши доказательства?!» (c):wink::). Цитата:
Символ "я" -- это именно символ с кодом "0xFF": Код:
MsgBox Hex(Asc("я")) Цитата:
B Windows 7, 8, 8.1 "не пройдёт". "Тамошний" "%ComSpec%" игнорирует символы пробела, символы табуляции и символ "я" (очевидно, также воспринимая его за "пустоту"), если эти символы находятся в начале выводимой строки: Код:
@<nul>.txt set/p="я я яблоко" Цитата:
Правда, в случае символа "я" речь идёт только о пакетных файлах, в командной строке с этим символом всё нормально. |
Цитата:
Цитата:
Цитата:
|
Ужас какой.... Читаю и волосы на голове шевелятся, какие дикости в нашем веке бывают...
Цитата:
"Усы, лапы, хвост - вот мои документы!" |
Цитата:
|
Время: 21:11. |
Время: 21:11.
© OSzone.net 2001-