0

我正在尝试使用 powershell 收集一些统计信息。

我有大约 4,000 份看起来像这样的报告(都在他们自己的 Report.txt 文件中 - 有些有更多字段。我已经对其进行了狙击):

我想做的(大声思考)是获取每个 [ ] 并将其设为 csv 标题,然后在该标题下添加每个项目。然后我可以对它运行简单的计数语句并提取一些数据。也许有更好/更简单的方法?

这个想法是有一些像:

请求的权限:android.permission.INTERNET 3,562 of 4,000 请求的权限:android.permission.READ_SMS 1 of 4,000 等等...

到目前为止,我已经剥离了字符串,因此它不再有空格和 *.

[ Package name ]
 * com.software.application

[ Requested Permissions ]
 * android.permission.INTERNET
 * android.permission.READ_PHONE_STATE
 * android.permission.READ_SMS
 * android.permission.RECEIVE_SMS
 * android.permission.SEND_SMS
 * android.permission.WAKE_LOCK
 * android.permission.WRITE_EXTERNAL_STORAGE
 * com.google.android.c2dm.permission.RECEIVE
 * com.software.application.permission.C2D_MESSAGE

[ Responsible API calls for used Permissions ]
 * android/app/NotificationManager;->notify
 * android/content/Context;->sendBroadcast
 * android/content/Context;->startService
 * android/os/PowerManager$WakeLock;->acquire
 * android/os/PowerManager$WakeLock;->release
 * android/telephony/SmsManager;->sendTextMessage

[ Potentially dangerous Calls ]
 * getSystemService
 * HttpPost
 * sendSMS

当前输出示例:

[PotentiallydangerousCalls]
getSystemService
HttpPost
sendSMS

所以现在有点干净了...

4

2 回答 2

1

如果我有时间,我会放一些代码,但这里有一本路书:

1) 编写一个函数 (CsvToObject),它获取 csv 文件的路径和名称,并返回一个 PSObject,其中每个 [value] 都有一个属性

  • 此函数可以利用switch ... casePowerShell 结构和正则表达式和文件使用。

2) 获取每个 *.csv 文件 ( Get-ChildItem) ,调用您的函数并将结果输入Export-CSV

于 2013-04-07T06:38:28.150 回答
0

您当前的输出示例的结构类似于 ini 文件。这篇关于 ini 文件的 Scripting Guy 帖子可能很有用。一些正则表达式帮助herehere

于 2013-04-07T16:11:01.660 回答