我目前正在尝试从assemblyinfo.cs文件中提取版本号,然后仅将版本号1.2.3.4附加到另一个文本文件中。
我尝试使用.split()方法,但只有当项已经是字符串时(从我所阅读的内容中)并且使用select-string从文本文件中提取整个字符串时,才能使用该方法。
下面是我的工作
$a = cat "c:\path_to_file\AssemblyInfo.cs“= select-string AssemblyVersion
将产生: AssemblyVersion("5.7.4.1")
如果我尝试做$a.split(‘“’'),我会得到
方法调用失败,因为[System.Object[]]不包含名为“拆分”的方法。一行:1字符:21+ $versionstring.split <<<< (‘“') + CategoryInfo : InvalidOperation:(拆分:String) [],RuntimeException + FullyQualifiedErrorId : MethodNotFound
正如我所说,这是因为它被认为是一个对象,而不是一个字符串。
我想要的结果是这样的:
PS C:\> $a = '[assembly: AssemblyVersion("5.7.4.1")]'
$b = $a.split(' " ')
$b[2]
5.7.4.1我假设问题是因为我使用CAT显示内容,然后拉出字符串,我不确定。
发布于 2014-04-10 17:49:55
Select-String返回MatchInfo对象。该行的字符串值位于该对象的.line属性中。
$a.line.split(' " ')应该给你你想要的结果。
使用
$a | Get-Member 要查看返回的所有可用属性,请执行以下操作。
https://stackoverflow.com/questions/22995305
复制相似问题