Powershell -Rename-Item vs -Rename-Item -newname

时间:2014-05-20 17:10:38

标签: powershell

有人可以向我解释这两个陈述的区别吗?

Rename-Item $temp "\\CCMSExtract$b"

Rename-Item  $temp -NewName "\\CCMSExtract$b"

它们似乎是做同样事情的多余方式,但这个-newname param有什么好处吗?

2 个答案:

答案 0 :(得分:2)

没有区别;你的例子中的两行做同样的事情。

如果你看一下Rename-Item的原理图:

Parameter Set: ByPath
Rename-Item [-Path] <String> [-NewName] <String> [-Credential <PSCredential> ] [-Force]

您将看到第二个参数是-NewName参数。换句话说,这个:

Rename-Item $temp -NewName "\\CCMSExtract$b"

相当于:

Rename-Item $temp "\\CCMSExtract$b"

相当于:

Rename-Item -Path $temp -NewName "\\CCMSExtract$b"

您是否选择明确指定参数名称取决于您的个人风格。

答案 1 :(得分:2)

没有区别。 -NewName<String>Rename-Item cmdlet的位置参数,位置为2.因此,在未明确指定-NewName的情况下使用cmdlet只是一种快捷语法。

它与-Path<String>参数完全相同,后者指定要重命名的项目,其位置为1.您可以在docs下找到{{3}}下的Position?文档。 1}}参数的属性。

这是为PowerShell cmdlet实现位置参数的方式。