Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Проверка длинны пути в XP

Старожил


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

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


Добрый день.
Необходимы идеи в реализации скрипта, который будет сканировать папку И выдавать те пути к файлам которые больше 260 символов.


Проблема в том что в XP есть ограничение на 260 символов в пути к файлу. Погуглив, пришёл к выводу что это ограничение никак не обойти....
Есть довольно большой ресурс, где необходимо выявить пути к файлам которые больше 260 символов....


Помогите пожалуйста.
Спасибо.

-------
Альтернатива Всему!


Отправлено: 16:53, 08-08-2011

 

Ветеран


Contributor


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

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


bombording, такой формат:
Код: Выделить весь код
\\?\Диск:[\Каталог][\Файл]
пробовали использовать?

Путь к файлу — Википедия

Отправлено: 17:03, 08-08-2011 | #2



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

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


Старожил


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

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


Iska, по \\?\UNC\server\catalog\
не заходит на ресурс.

А чем мне может помоч Long UNC вызов?

-------
Альтернатива Всему!


Отправлено: 17:12, 08-08-2011 | #3


Ветеран


Contributor


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

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


bombording,
Узнать длину строки:
Код: Выделить весь код
@echo off
setlocal

set "string=C:\some folder\some folder\some folder\some folder\file.ext"
:loop

set "string=%string:~0,-1%" && set /a len+=1
if defined string goto:loop

if %len% gtr 260 (echo wrong path length: %len%) else (echo Ok: %len%)

Отправлено: 17:12, 08-08-2011 | #4


Старожил


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

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


Foreigner, А возможно в качестве переменной string задать директорию.

На ресурсе просто куча директорий и под директорий.

-------
Альтернатива Всему!


Отправлено: 17:16, 08-08-2011 | #5


Ветеран


Contributor


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

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


bombording,
Вариант для проверки в директории:
Код: Выделить весь код
@echo off
setlocal

pushd "d:\Some Folder" || goto:eof
for /f "tokens=*" %%i in ('dir /b /s /a') do call:checklen "%%i"
popd
goto:eof

:checklen
set "string=%~1"

:loop
set "string=%string:~0,-1%" && set /a len+=1
if defined string goto:loop

if %len% gtr 260 echo %len%: %1

set "len="
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:22, 08-08-2011 | #6


Старожил


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

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


Foreigner, Почему то не работает. Ставлю параметр gtr 10 echo %len%: %1
запускаю скрипт. Сканирование вроде бы идёт, но вот уже минут 5 как тишина..... Хотя в папке куча подпапок с длинной больше 10 символов. Мне так кажется скрипт не дружит с RU именами папок.

-------
Альтернатива Всему!


Последний раз редактировалось bombording, 08-08-2011 в 18:10.


Отправлено: 17:53, 08-08-2011 | #7


Старожил


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

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


Код: Выделить весь код
@echo off

setlocal enabledelayedexpansion

set "sdir=x:\folder"

for /f "delims=" %%a in ('dir %sdir% /b/s/a') do (
   set "cdir=%%a"
   if not "!cdir:~260,1!"=="" echo %%a
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:55, 08-08-2011 | #8


Ветеран


Contributor


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

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


Цитата bombording:
Почему то не работает. Ставлю параметр gtr 10 echo %len%: %1
запускаю скрипт. Сканирование вроде бы идёт, но вот уже минут 5 как тишина..... »
Не знаю, на локальной папке работает.
Цитата bombording:
скрипт не дружит с RU именами папок. »
Должен дружить. Если начальная папка кириллицей, то поставь в начале батника:
Код: Выделить весь код
@echo off
1>nul chcp 1251
...
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:30, 08-08-2011 | #9


Старожил


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

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


Спасибо. Теперь всё работает.

-------
Альтернатива Всему!


Отправлено: 22:38, 08-08-2011 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - из интернета загружаются файлы нулевой длинны. Magikanin2006 Microsoft Windows 2000/XP 5 03-06-2010 16:52
Пути к иконкам Iliander Наборы обновлений для Windows XP/2003/Windows 7 4 08-03-2007 03:53
Изменение пути к CD Disconnect Microsoft Windows 95/98/Me 1 29-09-2004 21:27
Начало пути. Xeon Вебмастеру 11 16-03-2004 18:44
создание ячеек не ограниченной длинны в MySQL Vlad Drakula Вебмастеру 1 10-07-2003 00:58




 
Переход