Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Обрезание файлов в командной строке (http://forum.oszone.net/showthread.php?t=233254)

4zz 21-04-2012 00:13 1903518

Обрезание файлов в командной строке
 
Уважаемые знатоки!
Помогите написать батник-проблема:
при переносе папки появляются ошибки о длинном имени файла. Папка многоуровневая, содержит много папок и файлов и каждый раз приходится искать "неправильный" файл(путь+имя больше 255символов), переименовывать, опять запускать копирование и т.д. А в связи с тем, что папок много -это настоящий геморрой.. :( Ничего подходящего, моим условиям на форуме не нашел :(

Может это из области фантастики :) , но хотелось бы так:
При запуске батника из папки, происходит сканирование всех имеющихся в ней файлов и всех вложенных папок и при нахождении файла не удовлетворяющих условию (более 255сим.) - появляется сообщение о длинном имени и предложение переименовать его здесь же - в командной сроке, для чего выводится путь и имя. После переименования, продолжается сканирование, начиная с переименованного файла и так до полного исправления ошибок. :)

Iska 21-04-2012 01:15 1903533

4zz, можете использовать короткое имя папки.

4zz 21-04-2012 09:22 1903581

Имена папок не длинные- но их много по вложенности и получается длинный путь.
Можно регулировать длиной имени файла-использовать сокращения и т.д., но для этого нужно понять что нужно менять и как-то автоматизировать -о чем я и пишу выше.

El Sanchez 21-04-2012 12:45 1903643

4zz, используйте robocopy.

CyberMuesli 21-05-2012 01:52 1919553

Цитата:

Цитата El Sanchez
используйте robocopy. »


А эта утилита умеет преодолевать ограничение 256? Как? Есть какие-то штатные средства или она, например, на лету создает новые шары на источнике/приемнике на каждую копируемую папку, чтобы сократить путь

Petya V4sechkin 21-05-2012 08:05 1919631

Цитата:

Цитата CyberMuesli
А эта утилита умеет преодолевать ограничение 256?

Цитата:

Цитата из документации
By default Robocopy will handle file and directory path names up to almost 32,000 characters in length.

Цитата:

Цитата CyberMuesli
Как? Есть какие-то штатные средства

На уровне API у CopyFileW и у других аналогичных функций:

Цитата:

Цитата MSDN
In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path.



Время: 14:58.

Время: 14:58.
© OSzone.net 2001-