Jak*_*ake 4 windows powershell windows-8.1
我试图在文本文件中读取并更改Windows 8.1中Powershell中某一行上的数字值.该文件有点可预测.
我目前没有找到这种最好的方法,但我试图找出为什么会发生这种错误.我想在某个位置找到一个数字,然后读取它的整数值.
但是,当我这样做时,我得到了错误的价值.
我的代码:
$data = Get-Content "AssemblyInfo.cs"
Write-Output $data[-2]
Write-Output $data[-2][30]
Write-Output ([int]$data[-2][30])
Run Code Online (Sandbox Code Playgroud)
当前输出:
[assembly: AssemblyVersion("1.2.*")]
2
50
Run Code Online (Sandbox Code Playgroud)
预期产量:
[assembly: AssemblyVersion("1.2.*")]
2
2
Run Code Online (Sandbox Code Playgroud)
当作为int进行转换时,为什么值从2变为50?
这是因为$data[-2]
是a [String]
,并且使用括号来获取a中的字符[String]
不返回new [String]
,它返回一个[Char]
.
A [Char]
显示为单个字符(如字符串中),但实际上是数字值.当你把它投射到[int]
你时,你会看到角色的值,比如64 @
.
您可以先强制转换[String]
,然后转换[int]
为获取单个字符的数字版本,或者使用[int]::Parse()
:
[int][String]$data[-2][30]
# or
[int]::Parse($data[-2][30])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43 次 |
最近记录: |