使用PowerShell解析INI文件并将数据拆分为文件

时间:2017-07-12 10:01:39

标签: powershell ini

(我已经回顾了其他答案,但没有发现它与我的问题相符) 我有一个看起来像这样的INI文件:

[DATA]
installerDir=C:\installerDir
scriptsDir=C:\Scripts
TargetDirName=MSI
[DB]
DB_Name="Database_2211"
DistribDir=DataDist
TargetDir=TarMSI

我希望得到2个看起来像的输出文件: 第一个文件将包含以下数据:

installerDir=C:\installerDir
scriptsDir=C:\Scripts
TargetDirName=MSI

第二个文件将包含以下数据:

DB_Name="Database_2211"
DistribDir=DataDist
TargetDir=TarMSI

文件名应为 something_DATA.ini &因此, something_DB.ini 。 文件内容不应包含块名称(即:DATA -or- DB ...) 我发现bash的代码但是找不到PowerShell。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$Ini = Get-Content 'Something.ini'

$Split = $Ini -Replace '\[DATA\]' -Split '\[DB\]'
$Split[0].Trim() | Out-file 'something_DATA.ini'
$Split[1].Trim() | Out-file 'something_DB.ini'

<强>解释

  • 使用Get-Content
  • 读取.ini文件的内容
  • 用空白替换[DATA]文本部分(将其删除)并根据[DB]部分拆分内容(也将其删除)
  • 从拆分的每个部分中删除空白行(使用其数组索引[0][1]访问它们)并将其重定向到文件。