从管道构建Powershell字符串参数

Gre*_*mps 2 powershell

我需要使用管道输出动态构建一个字符串参数,然后传递给另一个命令.

source命令Get-VM有一个名为Name的元素

目标命令是Move-VM,接受参数-DestinationStoragePath

我需要动态操纵基于源名称是这条道路D:\{0},其中{0}的虚拟机名称.

到目前为止我有这个:

Get-VM | Move-VM -DestinationStoragePath [string]::Format("D:\{0}",$_.Name)
Run Code Online (Sandbox Code Playgroud)

但它抛出异常,如果我静态设置DestinationStoragePath参数,那么它工作正常,所以它只是这一点点绊倒它.

有任何想法吗?

Mic*_*lli 6

Get-VM | Move-VM -DestinationStoragePath [string]::Format("D:{0}",$_.Name)
Run Code Online (Sandbox Code Playgroud)

试图将字符串[string]::Format("D:{0}",$_.Name)字面上传递给参数-DestinationStoragePath.

你需要的是执行表达式并通过在括号中包围表达式来返回结果,如下所示:

Get-VM | % { Move-VM -DestinationStoragePath ([string]::Format("D:{0}",$_.Name)) }
Run Code Online (Sandbox Code Playgroud)