相关疑难解决方法(0)

对于 PowerShell cmdlet,我可以始终将脚本块传递给字符串参数吗?

我正在查看 PowerShell 的Rename-Itemcmdlet的文档,有一个这样的例子。

Get-ChildItem *.txt | Rename-Item -NewName { $_.name -Replace '\.txt','.log' }
Run Code Online (Sandbox Code Playgroud)

此示例说明如何使用 Replace 运算符重命名多个文件,即使 NewName 参数不接受通配符也是如此。

此命令将当前目录中的所有 .txt 文件重命名为 .log。

该命令使用 Get-ChildItem cmdlet 获取当前文件夹中具有 .txt 文件扩展名的所有文件。然后,它使用管道运算符 (|) 将这些文件发送到 Rename-Item 。

NewName 的值是在将值提交给 NewName 参数之前运行的脚本块。

注意最后一句话:

NewName 的值是在将值提交给 NewName 参数之前运行的脚本块

实际上NewName是一个字符串:

[-NewName] <String>
Run Code Online (Sandbox Code Playgroud)

那么这是否意味着当所需的参数类型是字符串时,我总是可以使用脚本块?

parameters powershell cmdlets scriptblock delay-bind

2
推荐指数
2
解决办法
1127
查看次数