Войти

Показать полную графическую версию : [решено] Как с помощью батника узнать, используется ли в названии файла\папки кириллица?


Nun-Nun
28-10-2010, 10:33
Как с помощью батника узнать, используется ли в названии файла\папки кириллица, пробелы или спецсимволы?

P.S. Это нужно, чтобы программа, не поддерживающая длинные имена, кириллицу и спецсимволы, могла выдать пользователю соответствующее предупреждение.

amel27
28-10-2010, 11:08
пример батника, выдающего такие файлы/папки:
dir /b|findstr /rc:"[а-Я ]"

Iska
28-10-2010, 11:29
Правильнее, думаю, будет говорить о полном пути:
@echo off

set sLongName=%ProgramFiles%

for %%i in ("%sLongName%") do (
echo [%%i] [%%~fi] [%%~dpnxi] [%%~si]

if "%%~dpnxi" == "%%~si" (
echo Not using
) else (
echo Using
)
)


set sLongName=%SystemRoot%

for %%i in ("%sLongName%") do (
echo [%%i] [%%~fi] [%%~dpnxi] [%%~si]

if "%%~dpnxi" == "%%~si" (
echo Not using
) else (
echo Using
)
)

exit /b 0

Приведённый код — скорее болванка; для примера взяты папки «Program Files» и «Windows». Сравниваются длинное и короткое имена пути.

Замечание: Не знаю, как поведёт себя квалификатор «~s» при заданном твике на отключение создания коротких имён операционной системой.

Nun-Nun
28-10-2010, 11:30
amel27,

А возможна ли такого рода проверка, если файл\папка с вышеназванными недопустимыми параметрами не существует, а пользователь ещё только пытается ввести такое имя файла\папки?

amel27
28-10-2010, 11:44
Nun-Nun, проверка переменной INPUT:
set INPUT|findstr /rc:"[а-Я ]"&& Echo Ошибка!




© OSzone.net 2001-2012