如何通过Powershell

时间:2015-07-28 10:58:56

标签: powershell

我是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 :(得分: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从文件集中删除任何重复项。