首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PowerShell中出现另一个字符串时拆分一个字符串

在PowerShell中出现另一个字符串时拆分一个字符串
EN

Stack Overflow用户
提问于 2014-12-11 01:33:21
回答 3查看 530关注 0票数 0

我有一个XML文件,其中包含一些数据。其中一个标签是版本标签。

我需要打开文件,将版本增加1并保存它。应该使用PowerShell-3实现自动化。

我使用-match获取具有version标记的行。这一行看起来是这样的:

代码语言:javascript
复制
<file version="18" date="12/24/2014" time="14:09" softwareversion="2.19.3">

所采取的办法:

将上面的字符串放入变量中,并在其上使用split作为显示。

代码语言:javascript
复制
$line = '<file version="18" date="12/24/2014" time="14:09" softwareversion="2.19.3">'
$line.split('file version="')

这样我就可以得到拆分行,取第三行,更新其中的版本,并将它们相加在一起,然后写入文件。

预计分裂的产出如下:

代码语言:javascript
复制
<
file version="
18" date="12/24/2014" time="14:09" softwareversion="2.19.3">

但我得到了下面这样的东西。

代码语言:javascript
复制
<













18    

dat    


11/15/2014

t
m    


12:03
PM




twa










2.19.3
>

如何在'file version=‘处对行进行子字符串,或者如何以更简单的方式更新版本号(如果可能的话)?

(预先谢谢:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-11 01:48:54

String.Split()对字符串中的每个字符进行拆分。所以你在“f”、“i”、“l”等词上出现了分裂

Powershell -split操作符似乎可以做您想做的事情。

代码语言:javascript
复制
PS D:\> $line -split 'file version="'
<
18" date="12/24/2014" time="14:09" softwareversion="2.19.3">

或者,如果要在结果中包含分隔符.

代码语言:javascript
复制
PS D:\> $line -split '(file version=")'
<
file version="
18" date="12/24/2014" time="14:09" softwareversion="2.19.3">
票数 1
EN

Stack Overflow用户

发布于 2014-12-11 01:57:04

或者您也可以将其作为XML文件处理,就像th一样。

代码语言:javascript
复制
$XML_CONTENT = [xml]'<file version="18" date="12/24/2014" time="14:09" softwareversion="2.19.3"></file>'
$VERSION_VALUE = [int]$XML_CONTENT.GetElementsByTagName("file").GetAttribute("version")
$XML_CONTENT.GetElementsByTagName("file").SetAttribute("version",($VERSION_VALUE + 1))
$XML_CONTENT.save("OUTPUTFILE.xml")
票数 4
EN

Stack Overflow用户

发布于 2014-12-11 12:00:58

如果您只是想更新字符串中的softwareversion="2.19.3"号,您可以这样替换它:

代码语言:javascript
复制
$nextVersion = "2.19.4"
$line = '<file version="18" date="12/24/2014" time="14:09" softwareversion="2.19.3">'
$line = $line -replace 'softwareversion=".*"',('softwareversion="'+$nextVersion+'"')

然后将$line写到文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27413941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档