我的文本文件内容类似于以下行
xcopy Source Destination /y /r /Q
xcopy Source Destination /y /r
我试图删除Desination后的所有字符。
我正在尝试使用Indexof方法并删除方法。但我找不到正确的答案
我尝试找到Whitespace的第三次出现并从中删除。但它不起作用。
$index=$line.IndexOf(" ",3)
$line=$line.RemoveAt($index)
有人可以帮助我使用powershell
来实现这一目标答案 0 :(得分:2)
我猜你的实际文件会有这样的路径:
xcopy "C:\Folder with space" "C:\Folder 2 with space" /y /r /Q
因此,您可以使用搜索/替换正则表达式删除xcopy参数,例如:
'xcopy "C:\Folder with space" "C:\Folder 2 with space" /y /r /Q' -replace '/[\w]' , ''
结果是:
xcopy "C:\Folder with space" "C:\Folder 2 with space"
这样您就不必担心xcopy参数之前有多少个空格。无论前面有多少个空格,参数都会被删除。
正则表达式匹配并删除带正斜杠的文本,后跟表示单词字符的character class。
答案 1 :(得分:0)
[Regex]::Replace("xcopy Source Destination /y /r /Q","^(xcopy) +([^ ]+) +([^ ]+).*$","`$1 `$2 `$3")
应该可以解决问题。