2017-07-25 8 views
1

私は、${key}の形式のハッシュテーブルのいくつかのキーを含むテキストファイルを持っています。私はテキストファイルを解析し、${key}をその値に置き換える必要があります。以下は、私が

#$config is the hashtable 
    $document = Get-Content sample.txt 
    foreach ($conf in $config.Keys) { 
     [string]$match = '${' + $conf + '}' 
     $document = $document.Replace($match, $($config.$conf)) 
     } 
    } 

私は$match文字列

[string]$match = "`${" + $conf + "}"

[string]$match='${' 
$match+=$conf 
$match+='}' 

私も$match='${BACKUP_FOLDER}'として文字列をハードコーディングしようとしたための代替案の下に試してみましたを使用していたコードはあるが、すべてのケースではそれはありません何もない。私も一致するかどうかを確認するために-matchを試しましたが、常にfalseを返します。 私は、テキストファイルに${key}形式のいくつかのパターンが含まれていることを確認しました。もし私が$matchの出力をコピーしてファイル内で検索するとパターンを見つけることができます。何が間違っているのか教えてください。私はSAMPLE.TXTのPowershell V5.0

サンプル入力

[email protected]{"BACKUP_DIR"="_Backup";"STAGING_DIR"="_Staging"} 

内容を使用しています

Overwrites the contents of new installation with old installation 
    Always use/as path seperator--> 
    <!-- <rename path="" newName=""/> --> 
    <!-- 
    ${BACKUP_DIR} 
    rename-> rename file/directory in new installation 

出力:タイプミスのカップルがいるよう${BACKUP_DIR}_Backup

+0

質問を編集し、サンプル入力と希望の出力データを追加してください。 – vonPryz

答えて

1

に置き換えてくださいルックスハッシュテーブル内で以下は、スクリプトとして保存して実行したり、コンソールにコピーしたりできる完全なソリューションです。

$document = @' 
Overwrites the contents of new installation with old installation 
    Always use/as path seperator--> 
    <!-- <rename path="" newName=""/> --> 
    <!-- 
    ${BACKUP_FOLDER} 
    rename-> rename file/directory in new installation 
'@ 

[email protected]{"BACKUP_FOLDER"="_Backup";"STAGING_DIR"="_Staging"} 

Write-Output "`n`nINPUT`n$document" 

foreach ($conf in $config.Keys) { 
     [string]$match = '${' + $conf + '}' 
     $document = $document.Replace($match, $config.$conf) 
} 

Write-Output "`n`nOUTPUT`n$document" 
+0

ありがとう@ gms0ulman。 Typoはただの質問だった。あなたのスクリプトは私がスタンドアロンのスクリプトとして実行するときに動作しますが、私がメインのスクリプトに組み込むときは動作しません。問題は他にもあるようです。いくつかの頭を傷つけることができます:( – Pramod

+0

@PramodAhanya確認するには、 '.Replace'、' $ config。$ conf'の異なる第2引数に気がつきましたか? – gms0ulman

+0

もう1つのタイプミスです。 $ conf 'スクリプト内で – Pramod

関連する問題