Проблемы с использованием PowerShell для пакетного удаления символов в начале имени файла - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь привести в порядок пакет имен файлов с помощью Powershell, и я получаю эту ошибку:

Rename-Item : Cannot create a file when that file already exists.
At line:1 char:7
+ Dir | Rename-Item -NewName {$_.Name.Substring(0,$_.BaseName.Length-4) ...
+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\garet\...e Mine (1).mp3:String) [Rename-Item], IOException
    + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand

Используемая мной команда:

Dir | Rename-Item -NewName {$_.Name.Substring(0,$_.BaseName.Length-4) + $_.Extension}

1 Ответ

0 голосов
/ 10 декабря 2018

Я думаю, что ваша команда удаляет не первые 4 символа в данный момент, а последние 4 символа.Попробуйте это:

Dir | Rename-Item -NewName {$_.name.substring(4,$_.BaseName.length-4) + $_.Extension}

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

Dir | Rename-Item -NewName {$_.name.substring(4) + $_.Extension}

Например:

'test'.substring(2)

Выходы:

st

Объяснение:

При использовании substring вы передаете два значения,во-первых, это индекс символов строки, с которой вы хотите начать, во-вторых, сколько символов строки из этой точки вы хотите захватить.

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