![]() |
Переименование папки, на основе файла внутри папки
Приветствую. Нужна ваша помощь. Есть набор папок такого вида
E:\123\123\405734043 E:\123\123\405794502 E:\123\123\405804760 В каждой папке лежит файл Small parking lot.crp Relax Park 4x4.crp Your on road park 1x1.crp В итоге получается такой вид E:\123\123\405734043\Small parking lot.crp E:\123\123\405794502\Relax Park 4x4.crp E:\123\123\405804760\Your on road park 1x1.crp Есть вот такой скрипт Код:
:start В итоге получается такой вид. E:\123\123\405734043 Small parking lot E:\123\123\405794502 Relax Park 4x4 E:\123\123\405804760 Your on road park 1x1 Дело в том что папки имеют 9 символов, но беда в том что, если папка будет иметь 10 символов к примеру E:\123\123\2240880754\İSTANBULL.crp То данный скрипт удалит последнюю цифру и конечный вид будет E:\123\123\224088075 İSTANBULL Автор данного скрипта не выходит на связь. Можете помочь сделать так что бы и 9 и 10 цифр работали адекватно и не удалялась 1 цифра в случае когда их 10 Спасибо. |
Задача в одно выражение на pwsh.
Код:
(Get-ChildItem E:\123 -Recurse -File).ForEach{ |
greg zakharov,
Ну то что имеем. Этому скрипту уже лет 6. А тот что на pwsh, он будет работать с любым расширением? И если в папке несколько файлов то он будет работать? |
Код:
@Echo Off Если в папке несколько .crp - файлов, папка будет переименована по имени первого файла. А Вам что надо - формулируйте задачу, а не предоставляйте чужой код. |
greg zakharov, Спасибо, отлично работает. Только если повторно запустить, он по второму кругу добавит, но это не беда.
megaloman, Надо что бы брался первый. Вот то что надо. Как я понимаю, .crp можно заменить на любое другое расширения и будет работать? |
KoRn0509, про повторный запуск ничего не оговаривалось, но это легко исправить путем добавления проверки соответствия имен (папки и файла).
Код:
(Get-ChildItem E:\123 -Recurse -File).ForEach{ |
Время: 22:17. |
Время: 22:17.
© OSzone.net 2001-