首页 > 解决方案 > 在 PowerShell 中使用命令作为参数

问题描述

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

我想使用该get-location命令并将其与字符串("\foo_1")组合,同时将其用作参数。

所以get-location 结果应该是“ D:\foo_2 ”,所以结果是“ D:\foo_2\foo_1

同时作为单独命令的参数:

Get-ChildItem -Path ".\*.wav" -Recurse | Move-Item -Destination (get-location + "string")

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

标签: powershellpipe

解决方案


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

Get-ChildItem -Path ".\*.wav" -Recurse | 
    Move-Item -Destination "$(Get-Location)\foo_1"

该结构$(...)告诉 PowerShell 首先执行括号的内容(即 run Get-Location),然后将结果替换为字符串。请注意,您必须使用双引号,因为此功能不适用于单引号字符串。


推荐阅读