【问题标题】:Powershell get-content split columns into duplePowershell get-content 将列拆分为双列
【发布时间】:2020-02-24 09:13:32
【问题描述】:

我需要在SFB中注册几个用户,我需要为他们各自的用户注册用户和电话分机,在TXT中我有两列用户和分机用“;”分隔,我的疑问是,如何分隔foreach 命令中的列?用户名和电话分机是否会正确添加到代码中?


sampleData.txt

用户 |扩展

myuser1@mycompany.com ; 3331 <br/>
myuser2@mycompany.com ; 3332 <br/>
myuser2@mycompany.com ; 3334 <br/>

------------------------------------------ -------------------

$user = Get-Content C:\temp\skypeproject\sampleData.txt

foreach ($users in $user) {  Set-CsUser –Identity $users –EnterpriseVoiceEnabled $true
<br/> <br/>
  –OnPremLineURI tel:+3333333$extension  <br/>  <br/>
  Set-CsUserPstnSettings –Identity "$users" –HybridPSTNSite ACCESSPOOL <br/> <br/>
  Grant-CsTenantDialPlan –Identity "$users" –PolicyName Company <br/> <br/>

}

【问题讨论】:

  • 考虑使用Import-CSV,它有-Delimiter 开关。

标签: powershell foreach skype


【解决方案1】:

正如vonPryz 建议使用Import-CSV 从文件中获取数据。您可以在文件中包含列的标题,以与其余数据相同的方式分隔,或者稍后使用 cmdlet 添加标题:

无标题:

$path = "path\to\sampleData.txt"
$csv = Import-Csv -Path $path -Delimiter ";" -Header "user","extension"
foreach ($row in $csv) {  
    $users = $row.user 
    $extension = $row.extension
    Set-CsUser –Identity $users –EnterpriseVoiceEnabled $true –OnPremLineURI tel:+3333333$extension
    Set-CsUserPstnSettings –Identity $users –HybridPSTNSite ACCESSPOOL
    Grant-CsTenantDialPlan –Identity $users –PolicyName Company
}

文件头:

$path = "path\to\sampleData.txt"
$user = Import-Csv -Path $path -Delimiter ";"
foreach ($row in $csv) {  
    $users = $row.user 
    $extension = $row.extension
    Set-CsUser –Identity $users –EnterpriseVoiceEnabled $true –OnPremLineURI tel:+3333333$extension
    Set-CsUserPstnSettings –Identity $users –HybridPSTNSite ACCESSPOOL
    Grant-CsTenantDialPlan –Identity $users –PolicyName Company
}

文件:

user;extension
myuser1@mycompany.com;3331
myuser2@mycompany.com;3332
myuser2@mycompany.com;3334

请注意,文件中包含空格!从您的文件中删除它们,或者您需要trim 输出:

$users = $row.user.trim()
$extension = $row.extension.trim()

【讨论】:

  • 您好 vonPryz 感谢您的回复,我有一个疑问。您使用了 Import-CSV。所以我的日期文件必须是 CSV?或者我可以使用 TXT 吗?我运行了您的代码建议,但什么也没发生。谢谢
  • Import-CSV 获取每个文本文件并尝试将其作为 CSV 文件处理。 CSV-file 是一种使用逗号或其他字符作为分隔符的表格。所以无论如何它应该工作。执行$csv = Import-Csv ... 后输入$csv 的输出是什么?
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
相关资源
最近更新 更多