2

当我尝试重命名合同文件夹以大写合同文件夹时,我收到重命名错误。我也尝试过“重命名项目合同合同”。有人知道我是否可以强制执行命令还是需要更改语法?

PS C:\> rename-item -Path .\contracts\ -NewName .\Contracts\
rename-item : Cannot rename the specified target, because it represents a path or device name.
At line:1 char:1
+ rename-item -Path .\contracts\ -NewName .\Contracts\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand
4

3 回答 3

3

Rename-Item(和 Windows 中的一般文件名)不区分大小写。

您需要将其重命名为临时文件,然后重命名为所需的名称。

如下两步,

Rename-Item -Path ".\contracts" -NewName ".\contracts_temp" -PassThru | Rename-Item -NewName ".\Contracts"
于 2021-07-10T17:27:47.153 回答
3

Abdullah Leghari 的有用答案提供了一种有效的解决方法,但值得说明的是,如果您删除尾随 \(以及可选的前导),您尝试的应该会起作用.\

  • 参数中的尾随\(或/-NewName正确地导致您看到的错误消息,因为-NewName根据定义,参数只接受名称,而不是路径(但是,前导 .\本身可以被悄悄容忍的,即使可以说它也不应该是,为了一致性)。

  • 但是,在不区分大小写的文件系统(默认情况下:Windows、macOS)中,应该可以将目录重命名为它的大小写变体,目前仅适用于文件

简而言之:

Rename-Item -Path .\contracts\ -NewName Contracts

应该可以工作,如果已修复所述错误,则将在未来的 PowerShell (Core) 版本中工作(但永远不会在Windows PowerShell中工作,除了关键错误修复之外不会看到任何更新)。

于 2021-07-11T00:08:13.690 回答
0

您需要从路径参数中删除尾随的“\”。

rename-item .\contracts .\Contracts

或者

rename-item -Path .\contracts -NewName .\Contracts
于 2021-07-10T15:50:11.597 回答