【发布时间】:2020-07-24 12:47:11
【问题描述】:
我有以下目录树,它由一个包含 10 个子目录的根目录和每个子目录中的 1 个文件组成。
根/
- 目录1/
- 文件
- 目录2/
- 文件
- ...
- dir10/
- 文件
我想以递归方式编辑文件的内容,将字符串“str1”替换为“str2”。我在powershell中发出了以下命令:
Get-ChildItem -Directory | foreach {(get-content $_/file) -replace "str1", "str2" | set-content $_/file}
它就像一个魅力,但我仍然不明白如何。我在 foreach 循环中使用了管道,但以下对 $_ 的调用仍然指的是 foreach 循环之外的管道。为什么会这样?
【问题讨论】:
标签: powershell foreach nested pipeline