|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] обрезать по заданному MAX PATH |
|
CMD/BAT - [решено] обрезать по заданному MAX PATH
|
Старожил Сообщения: 267 |
Профиль | Отправить PM | Цитировать есть список
я нашел как только обрезать длину файла. т.е.: а нужно именно обрезать по длине пути т.е. уровнять MAX PATH 1. причем желательно: чтобы я мог выбрать длину MAX PATH до которого нужно обрезать (т.е. нужно не до 255 а скажем до 200 чтобы при копировании файлов в другое место был разбег для глубины) 2. и обязательно сохранение расширения файла. 3. как сделать чтобы захватывались для обработки длины MAX PATH только файлы с расширением pdf ? |
|
Отправлено: 11:51, 18-06-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать shadowbat, в файл выводятся только файлы, длина пути которых (без расширения) превышает заданный лимит
|
Отправлено: 17:10, 18-06-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать я так понял папка из которой запускается батник не важна.
при таком коде создается пустой cmd |
Отправлено: 18:13, 18-06-2010 | #12 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать shadowbat, кодировка самого батника DOS (866)? (блокнот не катит)
|
Отправлено: 18:25, 18-06-2010 | #13 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать Цитата amel27:
РЕШЕНИЕ: chcp 1251 set $m=C:\Program Files\*.txt set $f=%~n0_tst.cmd set mp=50 (for /f "delims=" %%a in ('dir /b/s "%$m%"') do @( set "b=%%~dpna"& call set "c=%%b:~0,%mp%%%"& call call set "d=%%%%b:%%c%%=%%%%" if defined d call echo move "%%a" "%%c%%%%~xa"))>"%$f%" "%$f%" chcp 866 ----- 1. P.S.S. а как удалить файл cmd после выполнения? del "%$f%" перед chcp866 не помогает 2. P.S.S.S. |
|
Последний раз редактировалось shadowbat, 18-06-2010 в 20:07. Отправлено: 18:58, 18-06-2010 | #14 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
Цитата shadowbat:
Цитата shadowbat:
Цитата shadowbat:
- разные имена файлов могут стать одинаковыми, как должен вести себя скрипт: пропускать файл, перезаписывать последним, выдавать запрос или переименовывать по какому-то правилу? - имя файла может быть потеряно полностью, каковы действия скрипта: перемещать файл с именем папки или пытаться сохранить хотя бы часть имени файла?... возможны и забавные ситуации типа "C:\DIR1\DIR2\.pdf" |
||||
Отправлено: 05:01, 19-06-2010 | #15 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать значит получается так?:
РЕШЕНИЕ без лога работы: РЕШЕНИЕ с логом работы: amel27, Вы профессионал своего дела! Цитата amel27:
|
|
Последний раз редактировалось shadowbat, 19-06-2010 в 07:14. Отправлено: 06:47, 19-06-2010 | #16 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
|
|
Отправлено: 18:37, 07-07-2010 | #17 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать by.Serj, если речь про две строки в цикле:
(for /f "delims=" %%a in ('dir /b/s "%$m%"') do @( set "b=%%~dpna" call echo.%%b:~0,%mp%%%%%~xa ) )>"%$f%" где "%%~xa" - расширение файла (%%a); "%mp%" - значение переменной mp "!b:~0,%mp%!" - %mp% первых символов переменной b чтобы избежать использования EnableDelayedExpansion используем трикс с CALL: добавляем перед командой CALL и заменяем "!" на "%%" (отложенная подстановка), в результате при (первом) вызове CALL будут подставлены значения %%a и %mp%, при (втором) вызове ECHO - значение b |
Отправлено: 06:04, 08-07-2010 | #18 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Высокий приоритет заданному процессу | 7human7 | Скриптовые языки администрирования Windows | 14 | 26-01-2012 16:34 | |
...cannot find the specified path... - перенаправление? | semiono | Автоматическая установка Windows 2000/XP/2003 | 1 | 09-04-2010 01:43 | |
Удаление записей из таблицы по заданному времени на php | magwolf | Вебмастеру | 5 | 14-08-2009 14:13 | |
Win2003 и Max CPUID max to 3 | 3au4er | Microsoft Windows NT/2000/2003 | 0 | 06-08-2008 12:13 | |
Поиск элементов массива, чья сумма равна заданному числу | Qwe1 | Программирование и базы данных | 28 | 26-09-2006 03:31 |
|