本文介绍了读取所有文件,更改内容,再次保存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试替换某个目录结构中所有文件的内容.

I'm trying to do a replace in content of all files in a certain directory structure.

get-childItem temp\*.* -recurse |
    get-content |
    foreach-object {$_.replace($stringToFind1, $stringToPlace1)} |
    set-content [original filename]

我可以从原始 get-childItem 中获取文件名以在 set-content 中使用它吗?

Can I get the filename from the original get-childItem to use it in the set-content?

推荐答案

为每个文件添加处理:

get-childItem *.* -recurse | % `
{
    $filepath = $_.FullName;
    (get-content $filepath) |
        % { $_ -replace $stringToFind1, $stringToPlace1 } |
        set-content $filepath -Force
}

要点:

  1. $filepath = $_.FullName; — 获取文件路径
  2. (get-content $filepath) — 获取内容并关闭文件
  3. set-content $filepath -Force — 保存修改的内容
  1. $filepath = $_.FullName; — get path to file
  2. (get-content $filepath) — get content and close file
  3. set-content $filepath -Force — save modified content

这篇关于读取所有文件,更改内容,再次保存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 01:59