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 次 |
| 最近记录: |