1

以下のコードを使用して行を更新しようとしています。

 $dburl = 70.186.192.52
 $ptdb  = 3388

 $Se = "C:\File\location\edit.me"
(Get-Content $Se) |
   ForEach-Object { $_ -replace ("http://127.0.0.1:8190/storage/server"), 'http://$dburl:$ptdb/storage/server'  } | Set-Content $Se

出力は次のとおりです。

http://$dburl:$ptdb/storage/server or http://\70.186.192.52\:3388/storage/server

// と : をエスケープしようとしましたが、これを理解するのに運がありません。誰でもこれを行うためのより良い方法があります。私はサイトに目を通しましたが、この直接的な状況に対処するものは見つかりませんでした. これは、コードを調べていないことに対してマイナスの評価がつかないようにするためです。

powershell 特殊文字を置き換える

これは私が得ているものを私に与えます。変数が置換される代わりに、入力されたとおりに正確に出力されます。二重引用符を試してみましたが、ポートは出力されますが、アドレスは出力されません。エスケープ / または \ を入れると、前に出力されます。

ありがとう!

4

1 に答える 1

1

私はそれがまったくうまくいったことに驚いています。置換文字列を二重引用符で囲んでみてください。例:

$dburl = '70.186.192.52'
$ptdb  = '3388'
... -replace ("http://127.0.0.1:8190/storage/server"), "http://${dburl}:$ptdb/storage/server"

また、2つの変数値を引用します。

于 2012-12-19T17:41:55.843 に答える