Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] кириллические имена файлов и маска ~*.*

Ответить
Настройки темы
CMD/BAT - [решено] кириллические имена файлов и маска ~*.*

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Господа, такая проблема:

при отборе файлов в циклах for или подпрограмме forfiles с именами латиницей всё хорошо, а вот кириллические отбираются с тильдой на любом месте (например, ПСКОВСК~1.DOC считается соответствующим маске). Кто-нибудь сталкивался с такой проблемой? Поиск не помог.

Отправлено: 14:26, 13-03-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата ffs2001:
…с тильды начинаются когда-то побитые имена. »
Iska начинает биться головой об стену…

Отправлено: 07:39, 14-03-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Что не так?

Отправлено: 11:42, 14-03-2012 | #12


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Из письма в PM:
Цитата ffs2001:
Где можно прочесть об алгоритмах присвоения windows коротких имён? Нашёл только сведения о тильде в конце, и больше никакой конкретики.
В Базе Знаний: How Windows Generates 8.3 File Names from Long File Names. Информации по алгоритму генерации короткого имени по длинному кириллическому имени я не нашёл. Буду рад, если сие кому известно.

P.S. Кое-что на тему поиска и масок есть здесь: CMD/BAT - [решено] Пакетный файл для выборки из спика файлов текстовый(название и описание) (с чего сие для меня и началось — «Журден внезапно прозрел») и здесь: ANY: некоторые документированные особенности использования масок. Проблема, на самом деле, весьма серьёзная.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:15, 16-03-2012 | #13


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


К чему было битие головой о стену?

Отправлено: 14:48, 16-03-2012 | #14


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


ffs2001, от бессилия.

Отправлено: 15:34, 16-03-2012 | #15


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать



Цитата Iska:
Информации по алгоритму генерации короткого имени по длинному кириллическому имени я не нашёл »
Iska, функция WINAPI GetShortPathName генерит короткие имена. Кириллические имена файлов возвращает в том виде, в котором возвращает их команда dir /x. Но в cmd.exe ее я не нашел, скорее всего используются FindFirstFileW/FindNextFileW со структурой _WIN32_FIND_DATA, одним из членов которой является переменная cAlternateFileName с коротким именем.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:49, 16-03-2012 | #16


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
Iska, функция WINAPI GetShortPathName генерит короткие имена. »
El Sanchez, насколько я понимаю, функция GetShortPathName не генерирует, а читает и возвращает уже существующее в каталоге короткое имя для заданного файла. Что скажете?

Цитата El Sanchez:
скорее всего используются FindFirstFileW/FindNextFileW… »
Угу, я и писал об этом:
читать дальше »
Цитата alexii:
В данном случае (да и в прочих, о коих речь пойдёт ниже, тоже), похоже, следует винить функцию FindFirstFile Function (Windows):
Цитата:
Remarks

The following list identifies some other search characteristics:

* The search includes the long and short file names.
То бишь, в поиск включаются как длинные, так и короткие имена файлов.

Сие, в первую очередь, критично для нас и практически незаметно для пользователей, чей язык укладывается в первую половину кодовой таблицы ASCII.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:12, 16-03-2012 | #17


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Iska:
насколько я понимаю, функция GetShortPathName не генерирует, а читает и возвращает уже существующее в каталоге короткое имя для заданного файла »
Iska, да, вы правы, проверил.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:24, 16-03-2012 | #18


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Собственно, та задача, из-за которой всё затевалось, решилась банально: более актуальной маской для задачи оказалась ~$*.* , а под неё ничего лишнего не попадает.

Отправлено: 02:05, 04-04-2012 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] кириллические имена файлов и маска ~*.*

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге VALET93 Скриптовые языки администрирования Windows 34 12-04-2014 15:36
В Интернете появятся кириллические доменные имена OSZone News Новости информационных технологий 8 31-10-2009 02:42
Имена файлов при двухпроходном кодировании. HiDux Видео и аудио: обработка и кодирование 12 28-08-2009 00:09
Интерфейс - Имена файлов в папке Windows\Media Билл Гейтс Microsoft Windows 2000/XP 3 09-11-2008 13:10
Suse/OpenSuSE - Не отображаются русские имена файлов на xfs томе Linuxman Общий по Linux 0 24-04-2008 17:13




 
Переход