CMD/BAT - [решено] Проверка длинны пути в XP
-
bombording
CMD/BAT - [решено] Проверка длинны пути в XP
Добрый день.
Необходимы идеи в реализации скрипта, который будет сканировать папку И выдавать те пути к файлам которые больше 260 символов.
Проблема в том что в XP есть ограничение на 260 символов в пути к файлу. Погуглив, пришёл к выводу что это ограничение никак не обойти....
Есть довольно большой ресурс, где необходимо выявить пути к файлам которые больше 260 символов....
Помогите пожалуйста.
Спасибо.
Необходимы идеи в реализации скрипта, который будет сканировать папку И выдавать те пути к файлам которые больше 260 символов.
Проблема в том что в XP есть ограничение на 260 символов в пути к файлу. Погуглив, пришёл к выводу что это ограничение никак не обойти....
Есть довольно большой ресурс, где необходимо выявить пути к файлам которые больше 260 символов....
Помогите пожалуйста.
Спасибо.
-
Iska
Re: CMD/BAT - [решено] Проверка длинны пути в XP
bombording, такой формат:
Код:
пробовали использовать?
Код:
Код: Выделить всё
\\?\Диск:[\Каталог][\Файл]пробовали использовать?
Путь к файлу — Википедия
-
bombording
Re: CMD/BAT - [решено] Проверка длинны пути в XP
Iska, по \\?\UNC\server\catalog\
не заходит на ресурс.
А чем мне может помоч Long UNC вызов?
не заходит на ресурс.
А чем мне может помоч Long UNC вызов?
-
bombording
Re: CMD/BAT - [решено] Проверка длинны пути в XP
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%)-
bombording
Re: CMD/BAT - [решено] Проверка длинны пути в XP
Foreigner, А возможно в качестве переменной string задать директорию.
На ресурсе просто куча директорий и под директорий.
На ресурсе просто куча директорий и под директорий.
-
bombording
Re: CMD/BAT - [решено] Проверка длинны пути в XP
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="-
bombording
Re: CMD/BAT - [решено] Проверка длинны пути в XP
Foreigner, Почему то не работает. Ставлю параметр gtr 10 echo %len%: %1
запускаю скрипт. Сканирование вроде бы идёт, но вот уже минут 5 как тишина..... Хотя в папке куча подпапок с длинной больше 10 символов. Мне так кажется скрипт не дружит с RU именами папок.
запускаю скрипт. Сканирование вроде бы идёт, но вот уже минут 5 как тишина..... Хотя в папке куча подпапок с длинной больше 10 символов. Мне так кажется скрипт не дружит с RU именами папок.
-
SendMessage
Re: CMD/BAT - [решено] Проверка длинны пути в XP
Код:
Код: Выделить всё
@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
)-
Foreigner
Re: CMD/BAT - [решено] Проверка длинны пути в XP
Цитата bombording:
Почему то не работает. Ставлю параметр gtr 10 echo %len%: %1
запускаю скрипт. Сканирование вроде бы идёт, но вот уже минут 5 как тишина.....
Не знаю, на локальной папке работает.
Цитата bombording:
скрипт не дружит с RU именами папок.
Должен дружить. Если начальная папка кириллицей, то поставь в начале батника:
Код:
Почему то не работает. Ставлю параметр gtr 10 echo %len%: %1
запускаю скрипт. Сканирование вроде бы идёт, но вот уже минут 5 как тишина.....
CMD/BAT - [решено] Проверка длинны пути в XP
Не знаю, на локальной папке работает.
Цитата bombording:
скрипт не дружит с RU именами папок.
CMD/BAT - [решено] Проверка длинны пути в XP
Должен дружить. Если начальная папка кириллицей, то поставь в начале батника:
Код:
Код: Выделить всё
@echo off
1>nul chcp 1251
...-
bombording