Как переместить выделенные файлы в несколько разных каталогов за один цикл? - PullRequest
0 голосов
/ 23 апреля 2019

Впервые серьезно играю с Powershell. Я сталкиваюсь с проблемой, что моя маленькая петля не делает то, что я хочу; он создает список имен серий из файлов, найденных в каталоге, и создает каталоги, необходимые для хранения файлов.

[TAG]Series first.txt
[TAG]Series something else.txt
File.jpg
etc.

Это должно быть отсортировано в

Series first [Sometag]\[TAG]Series first.txt
Series something else [Sometag]\[TAG]Series something else.txt
File.jpg
etc.

Но я не могу заставить Move-Item фактически переместить файлы в новые каталоги. Это приводит к тому, что файлы без расширений или ошибки указывают на то, что файл (каталог) уже существует.

$details = ' [Sometag]'
$series = Get-ChildItem . -Name -File -Filter *.txt |
          % {$_.Replace("[TAG]", "").Split("-")[0].Trim()} |
          Get-Unique 
$series | ForEach-Object {
    New-Item -ErrorAction Ignore -Name $_$details -ItemType Directory
}

Это команда, которая должна перемещать файлы, которые она находит с помощью коллекции $serie, в ранее созданные каталоги.

foreach ($serie in $series) {
    Get-ChildItem -File -Filter *$serie*.txt |
        Move-Item -Destination '.\$serie$details'
}

Что приводит к жалобе на то, что файл уже существует. Как лучше всего с этим справиться, и можно ли оптимизировать первые две строки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...