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 に答える