gpt4 book ai didi

powershell - Powershell 1.0-当脚本位于其他目录中时,文件重命名失败

转载 作者:行者123 更新时间:2023-12-02 23:16:32 24 4
gpt4 key购买 nike

我正在尝试批量重命名旧的日志文件,但是仅当脚本与日志文件存储在同一文件夹中时,该脚本才对我有用。这是代码:

cls
$file = gci E:\logs |? {$_.extension -eq ".log" |% {rename-item $_ ($_.Name + ".old")}

当我从 E:\logs运行此脚本时,它工作正常。但是,当我从C:\ Scripts运行此脚本时,它给了我这个错误:
Rename-Item: Cannot rename because item at 'my.log.file.log' does not exist.
At C:\Scripts\rename-script.ps1:2 char:92
+ $file = gci E:\logs |? {$_.extension -eq ".log" |% {rename-item $_ ($_.Name + ".old")}
+ CategoryInfo : InvalidOperation (:) [Rename-Item], FSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

我也尝试将 Move-Item命令与 -literalpath开关一起使用,但结果相同

最佳答案

Name属性仅提供文件名而不包含路径。您可能想使用FullName属性。您还可以简化此操作,因为Rename-Item接受源文件名的管道输入:

gci E:\logs *.log | rename-item -newname {$_.FullName + ".old"}

还要注意,gci(get-childitem)允许您使用 -Filter参数过滤它输出的项目。此参数是位置参数(2),因此您甚至不必指定参数名称。

关于powershell - Powershell 1.0-当脚本位于其他目录中时,文件重命名失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com