powershell - 如何只取出字符串的一部分
问题描述
我们想在 Oracle VirtualBox 中暂停一个在内部网络上使用的虚拟机,当我们列出虚拟机时,我会得到以下输出,但要暂停虚拟机,我只需要列出虚拟机名称,因为人们将创建自己的虚拟机所以不能具体命名。问题只是我的powershell技能不是那么好,当我尝试使用拆分或替换时,我遇到了一个关于弯曲括号空间的错误,我想要结束的只是VM名称WIN10_VM1但是如何懂吗?
“WIN10_VM1”{bd9e16dc-1a1a-4340-aed2-af3b72f25c4f} “win2019”{20fb95cb-2fb3-48f8-a69d-a1e00ca014b5}
解决方案
PowerShell 公开了整个 .NET 环境。所以你可以使用Sytem.String.Substring()方法。
& "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" | ForEach-Object { $_.Substring(0, $_.IndexOf("{")).Replace(" ", "") }
推荐阅读
- javascript - 如何使用 ID 而不是类激活图标以及如何自动删除和添加它?
- amazon-web-services - 在 EC2 上运行 Flask
- javascript - Vue3 在自定义指令中渲染组件
- amazon-web-services - 为什么 AWS SES 不需要我的电子邮件凭证
- java - 为什么在java中记录被认为是产品类型但类不是?
- javascript - 有没有办法在 javaScript 中忽略大小写(Discord Bot Development)
- java - 使用 @ControllerAdvice 注释 @ExceptionHandler(Exception.class) 工作但 @ExceptionHandler({AuthenticationException.class) 不工作
- html - CSS `display:none` 对 DOM 的影响
- asp.net-mvc - 如何从视图一次更新多行(ASP.NET - 核心)
- sql-server - 根据另一列的上一行计算一列