在PowerShell中使用命令作为参数

在PowerShell中使用命令作为参数,powershell,pipe,Powershell,Pipe,我正在尝试递归地将一些文件移动到相对的子文件夹 我想使用get location命令并将其与字符串(“\foo\u 1”)组合,同时将其用作参数 所以get location应该生成“D:\foo\u 2”,这样结果就是“D:\foo\u 2\foo\u 1” 作为单独命令的参数时: Get-ChildItem-Path“\*.wav”-递归|移动项目-目的地(Get-location+“string”) 我知道我可以只使用变量,但我真的想理解这一点(如果有答案的话)。提前感谢=)您可以使用子表

我正在尝试递归地将一些文件移动到相对的子文件夹

我想使用
get location
命令并将其与字符串(“\foo\u 1”)组合,同时将其用作参数

所以
get location
应该生成“D:\foo\u 2”,这样结果就是“D:\foo\u 2\foo\u 1”

作为单独命令的参数时:

Get-ChildItem-Path“\*.wav”-递归|移动项目-目的地(Get-location+“string”)


我知道我可以只使用变量,但我真的想理解这一点(如果有答案的话)。提前感谢=)

您可以使用子表达式,如下所示:

Get-ChildItem -Path ".\*.wav" -Recurse | 
    Move-Item -Destination "$(Get-Location)\foo_1"
结构
$(…)
告诉PowerShell首先执行括号中的内容(即运行
Get Location
),然后将结果替换为字符串。请注意,您必须使用双引号,因为此功能不适用于单引号字符串。

谢谢!美元是为我做的