【问题标题】:Powershell - Get partial name as VariablePowershell - 获取部分名称作为变量
【发布时间】:2021-05-17 14:43:39
【问题描述】:

第一次在这里发帖,我是 Powershell 的初学者(实际上是大多数脚本)。 这里尝试做的是获取名称文件的一部分,稍后使用它从我们的服务器下载同名的文件。

$name = Get-childitem -Path "$env:USERPROFILE\AppData\Local\Microsoft\Outlook\*.ost" -name
$username = $name.Remove($name.IndexOf('@'))
Write-Output $Username

我只得到文件名,没有我在 ${.} 之间放的东西

感谢您的帮助

【问题讨论】:

  • 这是因为没有定义名称为$UserName 的变量。你打电话给Get-childitem,但什么也不做。您的意思是获取(Get-childitem -Path "$env:USERPROFILE\AppData\Local\Microsoft\Outlook" -File).FullName 吗?
  • 这样更合乎逻辑(这是我的第三个脚本,所以很多命令我还没有使用)。我想要的是从名为 Name.Lastname@Something.com - Name.Lastname.OST 的文件中提取 $Username,但不知道如何仅提取文件名的 Name.Lastname 部分。 (感谢您的快速回答)

标签: powershell variables


【解决方案1】:

@ 上拆分字符串并仅从结果数组中获取第一项:

$name = "FirstName.LastName@company.com - more text you don't care about.ost"

# String.Split() returns an array of strings, `[0]` gives us the first item in that array
$username = $name.Split('@')[0]

或者,删除从第一个@开始的原始字符串中的所有内容:

$username = $name.Remove($name.IndexOf('@'))

【讨论】:

  • 谢谢!能够得到我想要的!编辑我的文本中的最终作品。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
  • 2011-12-03
  • 1970-01-01
相关资源
最近更新 更多