【问题标题】:WindowsPowerShell Rename ItemWindowsPowerShell 重命名项目
【发布时间】:2021-09-20 13:12:37
【问题描述】:

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

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

【问题讨论】:

    标签: powershell rename-item-cmdlet


    【解决方案1】:

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

    rename-item .\contracts .\Contracts
    

    rename-item -Path .\contracts -NewName .\Contracts
    

    【讨论】:

    • 你的例子会报错,rename-item : Source and destination path must be different.
    【解决方案2】:

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

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

    两个步骤,如下,

    Rename-Item -Path ".\contracts" -NewName ".\contracts_temp" -PassThru | Rename-Item -NewName ".\Contracts"
    

    【讨论】:

    • +1 是一个有效的workaround,但值得注意的是,没有任何解决方法是必要的,而且确实不是files,只有目录.
    • PS:-NewName 参数被设计为仅接受 name,而不接受 path,而 .\ 前缀恰好是接受(与 尾随 \ 不同),最好不要包含它。
    • 嗨,阿卜杜拉,您的回答对我来说非常有效。感谢您的宝贵时间和咨询。
    【解决方案3】:

    Abdullah Leghari's helpful answer 提供了一种有效的解决方法,但值得说明的是,您尝试的方法应该工作如果您删除尾随 \(以及可选的前导.\):

    • -NewName 参数中的尾随 \(或 /)正确地导致了您看到的错误消息,因为根据定义,-NewName 参数只接受 name,而不接受path (然而,leading .\ 本身 被悄悄地容忍,尽管为了一致性,它可能也不应该被容忍) .

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

    简而言之:

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

    应该工作,如果所述错误得到修复,在未来的 PowerShell(核心)版本中工作(但永远不会在 Windows PowerShell ,除了 critical 错误修复之外不会看到任何更新)。

    【讨论】:

    • 嗨 Mklement0 感谢您的洞察力和澄清。每个操作系统(Linux、Windows、MacOS)的工作原理是我一直好奇的问题,并在我提出堆栈溢出问题之前尝试使用指南解决(“Windows PowerShell,除了关键的错误修复之外不会看到任何更新”)。这将有助于我将来将您的建议传递给该行业的其他专业人士。
    • 很高兴听到这个消息,@JonathanLoop,但要明确一点:跨平台按需安装 PowerShell (Core) 版本(版本 6 及更高版本,目前为 7.1)也可在 Windows 上运行,并且它在那里看到改进。这与 Windows 附带的旧版 Windows PowerShell 版本形成鲜明对比,后者的最新和最终版本是 5.1,仅修复严重的错误。
    猜你喜欢
    • 2011-01-03
    • 2014-05-14
    • 2016-08-03
    • 2022-10-13
    • 1970-01-01
    • 2015-12-26
    • 2020-02-17
    • 2016-07-09
    相关资源
    最近更新 更多