有人可以向我解释这两个陈述的区别吗?
Rename-Item $temp "\\CCMSExtract$b"
Rename-Item $temp -NewName "\\CCMSExtract$b"
它们似乎是做同样事情的多余方式,但这个-newname
param有什么好处吗?
答案 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实现位置参数的方式。