powershell - 如何在 Powershell 中流水线化变量 cmdlet?
问题描述
我想通过从以下简化示例中的参数插入管道步骤来参数化 Powershell 管道。
param (
$path,
$dataset,
$processor
)
$datasetProcessor = Get-Command 'Convert-Noop'
if ( $processor.Keys -contains $dataset.Name ) {
$datasetProcessor = $Processor[$dataset.Name]
}
Read-Dataset $dataset `
| $datasetProcessor `
| Export-Csv $path -NoTypeInformation
这会导致错误
表达式只允许作为管道的第一个元素
也许它可以使用 Invoke-Expression 工作,但是我将不再能够使用调试器。
什么方法可能有效?
谢谢,史蒂芬
解决方案
您已将脚本块(或从 get-command 返回的命令)指定为管道元素。那是一种表达。
要使用脚本块,请在其前面添加 &。
Read-Dataset $dataset `
| & $datasetProcessor `
| Export-Csv $path -NoTypeInformation
这是一个使用内置 cmdlet 的示例:
$sort=get-command sort-object
get-childitem | & $sort -property Length -descending
推荐阅读
- c# - 如何在构建 WebHost 之前访问 ASP.NET Core 中的服务?
- javascript - 获取 Href 链接;如果 JPG 跳过
- gams-math - 使用变量作为求和的上限 (varA = sum(i$(ord(i)
我需要将不同时间段的“交通时间”作为 VRP 问题中的一个参数来考虑,所以方程变成了这样:
varA = sum(i$(ord(i)<varA),X(i)) + other terms
有可能写出这样的代码吗?GAMS 或任何其他软件可以处理这样的限制吗?
- ios - 一个 UITableViewCell 正在控制其他人
- qliksense - 如何在 qliksense 中编辑或复制我自己发布的工作表/项目的数据加载重命名
- qt - 在没有 QGLWidget 的情况下使用 QGLFramebufferObject 和着色器
- python - 将子值设置为来自 JSON 的 URL
- java - 如何获得一个按钮来触发这两种方法?
- react-native - 在组件中的 navigation.navigate() 之后返回?
- django - 模板问题中的Django递归关系嵌套