Рекурсивное переименование файлов с использованием PS тривиально (отличие от примера из блога Майка Ормонда ):
dir *_t*.gif -recurse
| foreach { move-item -literal $_ $_.Name.Replace("_thumb[1]", "")}
Я пытаюсь рекурсивно переименовать структуру папок.
Вариант использования: я хотел бы иметь возможность переименовать все решение VS.NET (например, из Foo.Bar в Bar.Foo). Для этого есть несколько шагов:
- Переименование папок (например, \ Foo.Bar \ Foo.Bar.Model => \ Bar.Foo \ Bar.Foo.Model)
- Переименование файлов (например, Foo.Bar.Model.csproj => Bar.Foo.Model.csproj)
- Поиск и замена в файлах для исправления изменений в пространстве имен (например, 'namespace Foo.Bar' => 'namespace Bar.Foo')
Я сейчас работаю над первым шагом в этом процессе.
Я нашел это сообщение , в котором говорится о проблемах и заявляет о решении, но не говорится о том, что это за решение.
Я продолжаю бежать в рекурсивную стену. Если я позволю PS справиться с рекурсией, используя флаг, родительская папка будет переименована перед дочерними, и скрипт выдаст ошибку. Если я попытаюсь реализовать рекурсию сам, у меня все болит, и все идет ужасно неправильно - ради жизни я не могу заставить вещи начинать свои переименования с хвоста дерева рекурсии.