|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве" |
|
|
CMD/BAT - [решено] FTP vs. 'я' или "о проклятой протоколом букве"
|
Ветеран Сообщения: 992 |
Согласно RFC 959 протокол FTP не понимает русскую букву «я». Происходит это потому, что в кодировке cp1251 эта буква кодируется как «FF». А это окончание передачи данных. Таким образом мы получаем особенность не позволяющую скачивать с FTP файлы и директории содержащие букву «я». (c)
Кроме того как-то было дело настраивалась синхронизация с FTP. Но то была преамбула, амбула у нас впереди. Повадились пользователи файло в папки обменочные закидывать с той самой проклятой протоколом буквой, а они (файлы) от этого немного совсем не копируются, посему было принято решение переименовывать файлы (менять "я" на "Я"). Теперь наконец два вопроса для тех кто еще не окончательно заколебался читать вышеизложенную белиберду. - Возможно ли реализовать описанное выше на cmd/bat? - Возможно ли каким-то красивым образом дополнить то, что было сделано ранее, дабы не плодить лишние задачи в шедулере? |
|
Отправлено: 16:32, 15-01-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 17:01, 15-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Iska, переименование файлов. Например чтобы файл с именем "показатели мятателей молота.xlsx" был переименован в "показатели мЯтателей молота.xlsx"
|
Отправлено: 17:16, 15-01-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0421
if exist "%sSourceFolder%\." (
pushd "%sSourceFolder%"
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d "*.*"`
) do (
set sName=%%~i
set sNewName=!sName:я=Я!
if "!sName!" neq "!sNewName!" (
ren "!sName!" "!sNewName!"
)
)
popd
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0
|
Отправлено: 18:52, 15-01-2015 | #4 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Весьма круто, спасибо. |
||
Отправлено: 20:06, 15-01-2015 | #5 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Строчная буква "я" "проклята" не только "протоколом", но и интерпретатором командной строки, во всяком случае, в современных ОС Windows. Информация к размышлению (Windows 8.1): код пакетного файла в кодировке Win-1251: -- вывод результата в файл: Цитата:
код пакетного файла в кодировке Win-1251: -- вывод результата в файл: Цитата:
|
|||
Отправлено: 22:00, 15-01-2015 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Georgio, никто и не обещал работоспособность пакетных файлов в кодировке, отличной от OEM.
|
Отправлено: 22:29, 15-01-2015 | #7 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Я обещаю ![]() Iska, как Вы предлагаете вывести в файл символ "я" (именно символ с кодом "0xFF"), сохранив пакетный файл в кодировке OEM-866? |
|
Отправлено: 20:47, 16-01-2015 | #8 |
Ветеран Сообщения: 1758
|
|
Отправлено: 21:10, 16-01-2015 | #9 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Foreigner, всё верно. Когда писал:
Цитата Georgio:
я это и имел в виду. И это как раз пример того, что именно сохранение самого пакетного файла в кодировке OEM-866 приводит к его неработоспособности. А символ "я" очень актуален для пакетных файлов, например, тогда, когда нужно вставить BOM: . |
|
Отправлено: 21:45, 16-01-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Использование - Windows Server 2008 - лицензия на 32/64-bit "и" или "или"? | Looking | Лицензирование продуктов Microsoft | 3 | 12-03-2012 08:22 | |
Ошибка - [решено] Перестал открываться "Блокнот" или где в реестре "живёт" "блокнот". | ALEKCEN | Microsoft Windows 2000/XP | 2 | 09-03-2011 21:42 | |
[решено] Переменные среды папок "Мои рисунки", "Моя музыка" или общие | Redew | Автоматическая установка Windows 2000/XP/2003 | 9 | 03-10-2009 20:43 | |
Winamp 2.5,"Непонятный глюк" или "Я и компьютер-кто из нас более убогий?" | MiGin | Хочу все знать | 4 | 23-05-2006 22:09 | |
Когда нажимаю букву"M" или "L","U"...Проблема.. | ekodrive | Microsoft Windows 2000/XP | 7 | 27-01-2006 15:13 |
|