5

这里非常简单的问题,我想看看我们如何在命令行上使用 foreach 处理一堆命令(而不是通过 PS1 脚本)。

例如,我在控制台上显示目录列表,现在我想为每个对象执行 2 个命令。

Get-ChildItem | ForEach-Object { Write-Host $_ $_}

没关系,它显示了两次文件名,但是假设我想为同一个对象运行 2 个 Write-Host 命令,这可以在控制台上执行吗?

PS:我正在尝试使用 out-file cmdlet 将输出写入 2 个文件,因此我可以读取一些内容并为每个对象进行 2 个单独的输出文件调用

谢谢

4

2 回答 2

6

您可以像在 powershell 文件中一样在控制台窗口中编写脚本。使用“`”(反引号)键分隔行。例如:

PS > Write-Host `
>>> hello, world!

所以你可以做

PS > Get-ChildItem | ForEach-Object { `
>>>    Write-Host $_ `
>>>    doFoo() `
>>>    doBar() `
>>> ` }
于 2013-06-07T14:48:49.240 回答
5

基本上你想在ForEach-Object语句中执行 2 个命令,对吧?就用;这种方式来分隔命令ForEach-Object { command1; command2 }

在您的代码中,它应该是这样的

Get-ChildItem | ForEach-Object { Write-Host $_; Write-Host $_ }
于 2013-06-07T14:53:17.077 回答