3

Get-Contentを使用してファイルから数値を読み取り、それを変数に追加しようとしています。

次に、この番号をファイル内の文字列に追加し、番号を1増やしてから、ファイルに再度保存します。

私は次のようなことを試しました:

$i = Get-Content C:\number.txt
$i++
Set-Content C:\number.txt

number.txtの内容は次のとおりです:1000

しかし、私はこのエラーを受け取ります:

The '++' operator works only on numbers. The operand is a 'System.String'.
At line:2 char:5
+ $i++ <<<< 
    + CategoryInfo          : InvalidOperation: (1000:String) [], RuntimeException
    + FullyQualifiedErrorId : OperatorRequiresNumber

誰かがこの操作を行うためのより良い方法のアイデアを持っていますか?

4

3 に答える 3

6

インクリメントする前に整数に変換する必要があると思います。

$str = Get-Content C:\number.txt
$i = [System.Decimal]::Parse($str)
$i++
Set-Content C:\number.txt $i
于 2013-01-07T11:46:59.930 に答える
6

短い方法:

[decimal]$i = Get-Content C:\number.txt # can be just [int] if content is always integer
$i++
Set-Content C:\number.txt $i
于 2013-01-07T13:54:01.503 に答える
0

一行でやってみましょう:

 [decimal] ( $i = Get-Content C:\number.txt ) | % {Set-Content C:\number.txt -value ($_ + 1); return ($_ + 1)}

インクリメントされた値を返します。$ iには、増分前の値があります。

于 2020-08-28T13:41:30.760 に答える