Отладочный совет: Если у вас возникли проблемы с кодом, и вы используете конвейер, перепишите код, чтобы не использовать конвейер, а также устраните проблему и выполните отладочные средства, чтобы помочь устранить неполадки. Может быть Write-Host, сэкономить на временные переменные и т. Д.
Для меня ваш Move-Item как написано не работает, и я получаю подобное сообщение об ошибке.
Вот что я прибыл в качестве решения:
Get-ChildItem *.crypted | ForEach-Object {Move-Item -LiteralPath $_.FullName $_.FullName.Replace('.crypted', '')}
Обратите внимание, что я прохожу 2 аргументов Move-Item
после -LiteralPath
, и нет необходимых обратных кавычек или что-нибудь из ряда вон выходящего.
Вот моя работа, чтобы продемонстрировать проблему и мое решение.
D:\test\move> dir
Directory: D:\test\move
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/17/2016 9:21 PM 100347 file [1].pdf
D:\test\move> Get-ChildItem *.pdf | Move-Item -LiteralPath {$_.FullName.Replace('1', '2')}
Move-Item : Cannot move item because the item at 'D:\test\move\file [2].pdf' does not exist.
At line:1 char:23
+ ... ldItem *.pdf | Move-Item -LiteralPath {$_.FullName.Replace('1', '2')}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Move-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.MoveItemCommand
D:\test\move> Get-ChildItem *.pdf | ForEach-Object {Move-Item -LiteralPath $_.FullName $_.FullName.Replace('1', '2')}
D:\test\move> dir
Directory: D:\test\move
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/17/2016 9:21 PM 100347 file [2].pdf
Работы по РАСШИРЕНИЯ тоже ...
D:\test\move> dir
Directory: D:\test\move
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/17/2016 9:21 PM 100347 file [2].txt.crypted
D:\test\move> Get-ChildItem *.crypted | ForEach-Object {Move-Item -LiteralPath $_.FullName $_.FullName.Replace('.crypted', '')}
D:\test\move> dir
Directory: D:\test\move
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/17/2016 9:21 PM 100347 file [2].txt
D:\test\move>
ли вы пробовали 'переименовывать-item' Командлет? –
@jisaak Командлет 'rename-item' терпит неудачу из-за скобок и отсутствия' -LiteralPath'. Это была первоначальная необходимость переключиться на '-Move-Item'. [] Являются подстановочными знаками внутри powershell. – KMckenzie