gpt4 book ai didi

powershell - Powershell:为什么Rename-Item不能用作管道命令?

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

在此脚本中,大部分工作都按我的预期进行。但是,重命名操作仅在这些管道命令之外起作用

 Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item - 
Destination $destination | sleep 5 | Out-File -FilePath $logpath -Append

如果我尝试将重命名作为管道命令的一部分进行操作,则根本无法正常工作。除此以外的任何地方,它将对filewatcher的单个iteratrion起作用,然后不再起作用。为什么重命名不能用作管道命令?
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -Destination $destination | Rename-Item $destination$folderfile -NewName $newname  | Out-File -FilePath $logpath -Append

最佳答案

默认情况下,Move-Item不输出到管道。使用 -PassThru 开关:

-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.



这将直接将其传递到 Rename-Item中,而您仅需指定 -NewName:
Get-ChildItem -Path $folderpath -Filter $folderfile | 
Move-Item -Destination $destination -PassThru |
Rename-Item -NewName $newname -PassThru |
Out-File -FilePath $logpath -Append

另外,您甚至根本不需要使用 Rename-Item,而是将其直接移动到最终目标目录+名称(假设 $destination是目录路径):
Get-ChildItem -Path $folderpath -Filter $folderfile | 
Move-Item -Destination (Join-Path $destination $newname) -PassThru |
Out-File -FilePath $logpath -Append

关于powershell - Powershell:为什么Rename-Item不能用作管道命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321398/

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