前提
ここに質問の内容を詳しく書いてください。
(例)
閲覧ありがとうございます。
powershellでファイル内の文字列の末尾に00を付与したいですが、
うまく置換できません。
対応策をご存じの方がいらっしゃいましたら、ご教授お願い致します。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
・ファイル内の文字列を下記のように置換したいです。
# DamageLow = 250 → DamageLow = 25000 # DamageHigh = 250 → DamageHigh = 25000 # DamageLow = 0 → DamageLow = 0 ※置換しない
発生している問題・エラーメッセージ
なし
該当のソースコード
PowerShell
1$file_contents = $(Get-Content 'C:\Program Files (x86)\Steam\steamapps\common\Hades\Content\Game\Projectiles\PlayerProjectiles.sjson') -replace '(Damage(Low|High) = [1-9][0-9]*)','$100' 2$file_contents > 'C:\Program Files (x86)\Steam\steamapps\common\Hades\Content\Game\Projectiles\PlayerProjectiles.sjson' 3# 意図しない置換結果: DamageLow = 250 → $100 4 5$file_contents = $(Get-Content 'C:\Program Files (x86)\Steam\steamapps\common\Hades\Content\Game\Projectiles\PlayerProjectiles.sjson') -replace '(Damage(Low|High) = [1-9][0-9]*)','$1\00' 6$file_contents > 'C:\Program Files (x86)\Steam\steamapps\common\Hades\Content\Game\Projectiles\PlayerProjectiles.sjson' 7# 意図しない置換結果: DamageLow = 250 → DamageLow = 250\00
(置換対象ファイル(PlayerProjectiles.sjson)を一部抜粋)
DamageLow = 2500 DamageHigh = 2500 DamageRadius = 100.0 DamageRadiusScaleY = 0.65 UseVulnerability = true NumPenetrations = 999 SilentImpactOnInvulnerable = true AffectsEnemies = true AffectsFriends = false AffectsSelf = false CheckUnitImpact = false CheckObstacleImpact = false Fuse = 0.01 ImmunityDuration = 0.1 UseRadialImpact = false } { Name = "RamWeapon" DetonateSound = "null" DetonateGraphic = "BlinkTrailVerticalB" Type = "STRAIGHT" Fuse = 0.075 Range = 250 DamageLow = 0 DamageHigh = 0 DamageRadius = 1.0
試したこと
なし
補足情報(FW/ツールのバージョンなど)
Name Value ---- ----- PSVersion 5.1.19041.1320 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.19041.1320 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/19 13:01