wolf0425
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору GORA2 Цитата: Не совсем то, что я просил. | вообще-то просил ты именно что получил. другой вопрос - может хотел по-другому Цитата: Это верно работает, если в файл-списке есть файл(ы), а если папка и только ОДНА то soursepart содержит путь+имя данной папки. | вообще-то так и задумывалось - найти наибольший общий путь... Цитата: И если можно, очень бы хотелось еще переменную soursename с именем (без пути) папки или файла из файл-списка, если в файл-списке только один файл или папка соответственно. Т.е. если только одна запись. | если заведомо надо получить путь + имя раздельно, а не максимальный общий путь - второй цикл будет таким Код: :_dirname if "!soursepart:~-1!"=="\" set "soursepart=!soursepart:~0,-1!" for /f "tokens=*" %%a in ("!soursepart!") do set "soursename=%%~nxa" && set "soursepart=%%~dpa" type %partlistfile% | find /v "!soursepart!" >nul && goto :_dirname | soursename - имя.ext первой строки файла, независимо от того файл там или папка, если строка единственная. если строка не единственная - то промужуточный мусор обработки. сойдет? если действительно надо строки посчитать for /f %%a in ('type %partlistfile% ^| find /v /c ""') do if %%a equ 1 echo единственная строка я вот тут задумался - а могут ли быть в задуманном тобой списке файлы/папки разной вложенности? т.e. вида d:\temp\1\ d:\temp\2\3.zip если нет, и все файлы/каталоги списка имеют тот же путь, что и первый файл/каталог - почти половина батника лишняя... | Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:49 16-05-2007 | Исправлено: wolf0425, 18:56 16-05-2007 |
|