CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Аватара пользователя
Elven

CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Elven »

Согласно RFC 959 протокол FTP не понимает русскую букву «я». Происходит это потому, что в кодировке cp1251 эта буква кодируется как «FF». А это окончание передачи данных. Таким образом мы получаем особенность не позволяющую скачивать с FTP файлы и директории содержащие букву «я». (c)

Кроме того как-то
CMD/BAT - [решено] FTP синхронизация папок
дело настраивалась синхронизация с FTP.

Но то была преамбула, амбула у нас впереди. Повадились пользователи файло в папки обменочные закидывать с той самой проклятой протоколом буквой, а они (файлы) от этого немного совсем не копируются, посему было принято решение переименовывать файлы (менять "я" на "Я"). Теперь наконец два вопроса для тех кто еще не окончательно заколебался читать вышеизложенную белиберду.

- Возможно ли реализовать описанное выше на cmd/bat?

- Возможно ли каким-то красивым образом дополнить то, что было сделано ранее, дабы не плодить лишние задачи в шедулере?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Iska »

Цитата Elven:



Возможно ли реализовать описанное выше на cmd/bat?
CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"




Реализовать что именно?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Iska »

Iska, переименование файлов. Например чтобы файл с именем "показатели мятателей молота.xlsx" был переименован в "показатели мЯтателей молота.xlsx"
Аватара пользователя
Elven

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Elven »

Iska, переименование файлов. Например чтобы файл с именем "показатели мятателей молота.xlsx" был переименован в "показатели мЯтателей молота.xlsx"
Аватара пользователя
Elven

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Elven »

Цитата Elven:



с той самой проклятой протоколом буквой
CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"














Строчная буква "я" "проклята" не только "протоколом", но и интерпретатором командной строки, во всяком случае, в современных ОС Windows.









Информация к размышлению (Windows 8.1):







код пакетного файла в кодировке Win-1251:





Код:

Код: Выделить всё

@>.txt (
echo яблоко
echo я
echo.я
)

--



вывод результата в файл:




Цитата:



яблоко

ђҐ¦Ё¬ ўлў®¤* Є®¬**¤ ** нЄа** (ECHO) ўЄ«озҐ*.

я



;





код пакетного файла в кодировке Win-1251:





Код:

Код: Выделить всё

@.txt (
set/p="яблоко"
set/p="я"
)

--



вывод результата в файл:




Цитата:



блоко



.
Аватара пользователя
Georgio

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Georgio »

Georgio, никто и не обещал работоспособность пакетных файлов в кодировке, отличной от OEM.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Iska »

Цитата Iska:



Georgio, никто и не обещал работоспособность пакетных файлов в кодировке, отличной от OEM.
CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"






Я обещаюИзображение.



Iska, как Вы предлагаете вывести в файл символ "я" (именно символ с кодом "0xFF"), сохранив пакетный файл

Код:

Код: Выделить всё

@.txt set/p="я"

в кодировке OEM-866?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Iska »

Georgio,

chcp 1251



Код:

Код: Выделить всё

@echo off
1>nul chcp 1251
0>nul 1>1.txt (
	set/p="я"
	set /p="яблоко"
)
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"

Сообщение Foreigner »

Foreigner, всё верно. Когда писал:
Цитата Georgio:



Я обещаюИзображение.
CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"




,

я это и имел в виду. И это как раз пример того, что именно сохранение самого пакетного файла в кодировке OEM-866 приводит к его неработоспособности. А символ "я" очень актуален для пакетных файлов, например, тогда, когда нужно вставить BOM:





Код:

Код: Выделить всё

@>nul chcp 1251
@.txt set/p="яю"

.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»