0

パワーシェルスクリプトを使用してファイルの内容を読み取り、そこから特定の種類の単語を選択しようとしています。さらに下流で使用する変数として見つかった単語をロードする必要があります。

これは私の入力ファイルがどのように見えるかです:

{
    "AvailabilityZone": "ap-northeast-1b", 
    "VolumeType": "gp2", 
    "VolumeId": "vol-087238f9", 
    "State": "creating", 
    "Iops": 100, 
    "SnapshotId": "", 
    "CreateTime": "2016-09-15T12:17:27.952Z", 
    "Size": 10
}

私が選びたい具体的な言葉は ですvol-xxxxxxxx。このリンクを使用してスクリプトを記述 しました PowerShell の選択文字列で変数を渡す方法

これが私がやっている方法です:


$Filename = "c:\reports\volume.jason"
$regex = "^[vol-][a-z0-9]{8}$"
$newvolumeid=select-string -Pattern $regex -Path $filename > C:\Reports\newVolumeid.txt
$newVolumeid

このスクリプトを実行すると実行されますが、応答がありません。何とか選択文字列の出力が変数にロードされていないようです$newvolumeid

これを解決する方法はありますか?または私が欠けているものは何ですか?

PS: 上記の投稿は約 3 年前のもので、機能しないため、再投稿します。

4

2 に答える 2

0

これを試して

$Inpath = "E:\tests\test.txt"

$INFile = Get-Content $Inpath 

$NeedsTrimming = $INFile.Split(" ") | ForEach-Object {if ($_ -like '*vol-*'){$_}}

$FirstQuote = $NeedsTrimming.IndexOf('"')
$LastQuote = $NeedsTrimming.LastIndexOf('"')

$vol = $NeedsTrimming.Substring(($FirstQuote + 1),($LastQuote - 1))

$vol 
于 2016-09-22T05:14:49.577 に答える