0

我在 .txt 或 .config 中使用 powershell 创建了一个日志文件。它看起来像:

# Hello
## This is readme.txt file
## This is commented line
# This is powershell command output
#
# File generated for read, re-load and edit the values
## -- many more comment is there
# Users can change values..
## There is no relation between $RegPath and $RegValue, this are only variables.

# this are registry path,
$RegPath = (
"\\hklm\software\microsoft\123",
"\\hklm\software\Adobe\123",
"\\hklm\software\Fax\123",
"\\hklm\software\IE\123");

# this are registry value.
$RegValue = (
"0",
"123",
"abc",
"456asdccxv",
"update",
"serv");

#this are some services with 0/1
# Win 7 OS exist
$IsWin7OS = 1

# Service pack installed
$IsSPInstalled = 0

# Check office
$MSOffice = 1

# This setting name is
$SettingName = "ReadMe.txt"

这是示例 ReadMe.txt。我想在 powershell 中读取此文件,并希望在 powershell 平台中获取 $RegPath、$RegValue、$IsWin7OS、$IsSPInstalled、$MSOffice 和 $SettingName 的值。然后我将更新这个值并再次保存在同一个文件中。

4

1 回答 1

1

免责声明:这是一种安全性最差的做法。这真的很危险。也就是说,读取此数据的一种简单方法是:

PS> Invoke-Expression (Get-Content C:\readfile.txt -Raw)
PS> $RegPath[0]
\\hklm\software\microsoft\123

它不好的原因是,如果有人将它添加remove-item c:\ -recurse -force到文件中,上面的命令将执行它,这对你来说将是糟糕的一天。我建议您将数据以.psd1哈希表的形式放入文件中。在这种情况下,PowerShell 不会执行任意代码。或者,您可以将数据存储为 CLIXML 或 JSON,然后使用 Import-Csv 或 ConvertFrom-Json 将其读回。

于 2013-06-10T17:58:29.753 回答