首页 文章

如何通过Powershell在文件中编写内容

提问于
浏览
0

我是PowerShell的新手,我想读取文件夹(子文件夹)中的多个文件,并希望将我的内容放在/写入特定位置的文件中 . 但是,如果该内容已在文件中可用,则应跳过表示不写入文件

示例

我有两个配置文件

C:\Projects\Project_1\project1.config
C:\Projects\Project_2\project2.config

project1.config文件包含

add key="Environment" value="Dev"/
add key="Environment" value="Demo"/

project2.config文件包含

add key="Environment" value="Dev"/

我想编写一个脚本,两个文件都应该低于内容

add key="Environment" value="Dev"/
add key="Environment" value="Demo"/

project1.config不应该复制这些数据,因为它已经拥有它,只有project2.config应该添加这个代码

1 回答

  • 0

    这可能不适用于大文件,但一个简单的方法是读取所有文件并删除任何重复的行 .

    Get-ChildItem "C:\Projects" -Recurse -Include "*.config" | 
        ForEach-Object{Get-Content $_.FullName} | 
        Select-Object -Unique | 
        Set-Content "C:\temp\NewFile.config"
    

    获取Projects direcory下的所有配置文件,并将每个文件作为数组读取 . 然后使用 Select-Object -Unique 从文件集合中删除任何重复项 .

相关问题