Подсчитайте количество символов в полном пути к файлу?

Мне нужно, чтобы иметь возможность подсчитать количество символов в полный путь к файлу в windows. В настоящее время я решаю эту задачу следующим образом:

  1. открыть командную строку
  2. cd в соответствующий каталог (например c:CruiseControlProjectArtifactsProjectName)
  3. введите следующую команду
    dir /s /b > выход.csv
  4. открыть результаты.csv-файл в excel.
  5. использовать =LEN () функция в Excel для подсчета количества символов в строке, как указано в выходных данных.CSV-файл.

кто-нибудь знает о расширении оболочки проводника, или какой - то сторонний инструмент, который мог бы преформ эту функцию без меня, чтобы манипулировать вывод из dir в excel? Есть ли более простой способ сделать это? Корень проблемы я-это ~260 символов путь к файлу ограничение в Windows. Я пытаюсь проанализировать, какие пути приблизительно ~260 символы, чтобы я мог сократить их, чтобы избежать этой ошибки.

25
задан Der Hochstapler
18.01.2023 19:25 Количество просмотров материала 3104
Распечатать страницу

3 ответа

такого рода вещи очень легко сделать с помощью Hamilton C shell. Если это одноразовая вещь, вы будете счастливы с бесплатная версия. Вот пример генерации fullpaths нескольких файлов в папке c:\Windows каталог, затем вычисление длины строки. Полное раскрытие: я-автор.

128 C% cd
c:\Windows
129 C% ls mi*
Microsoft.NET      Minidump           mib.bin
130 C% foreach i ( mi* )
131 C? @ f = fullpath ( i )
132 C? echo $i $f $strlen(f)
133 C? end
mib.bin c:\Windows\mib.bin 18
Microsoft.NET c:\Windows\Microsoft.NET 24
Minidump c:\Windows\Minidump 19
134 C%
1
отвечен Nicole Hamilton 2023-01-20 03:13

возможно, эти простые пакетные файлы пригодятся.

1) подсчет количества символов в текущей директории:

@echo off
echo %cd%>"%TMP%\Temp.txt"
for %%l in ("%TMP%\Temp.txt") do set /a len=%%~zl
del "%TMP%\Temp.txt"
set /a len-=2
echo Path length = %len% chars.

cd в Реж. и просто позвоните в пакетный файл.

2) подсчет количества символов в указанной директории:

@echo off
echo %1>"%TMP%\Temp.txt"
for %%l in ("%TMP%\Temp.txt") do set /a len=%%~zl
del "%TMP%\Temp.txt"
set /a len-=4
echo Path length = %len% chars.

вызовите пакетный файл и передайте ему полный путь в качестве аргумента (обязательно используйте кавычки, если путь содержит пробелы). Обратите внимание, что проверка ошибок не выполняется, поэтому кавычки, когда путь содержит пробелы, дадут неправильное (низкое) количество, и добавление дополнительных обратных косых черт в конце увеличит количество.

1
отвечен Karan 2023-01-20 05:30

это не ответ на ваш вопрос, но это решает вашу проблему.  Type

dir /s /b | findstr -r ...............................................................................................................................................................................................................................................................

в моей иллюстрации выше, я набрал 255 периодов; это будет делать dir /s /b, который вы уже знаете, и показать только те строки (файл пути) не менее 255 символов.  Настройте количество периодов по своему вкусу.  Естественно, вы можете перенаправить вывод в файл для печати или другого анализа.

0
отвечен Scott 2023-01-20 07:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх