从文本文件中提取变量(powershell)

时间:2013-02-17 21:13:02

标签: powershell text-files

我有一个脚本,结果是带有变量输入的UI,并将这些变量放入.txt。我需要能够将文本文件的一部分调用到另一个脚本中。 IE:

文本文件读取 用户ID:用户名

我需要将此行分开并将“username”作为另一个脚本中的变量调用,以便脚本读取:

import-module ActiveDirectory
$id = "username"
$ADLocation = ($id.ParentContainer)
$hoou = "OU=User,OU=Office,OU=win7,DC=company,DC=corp"
get-aduser $id
Move-ADObject -Identity $ADLocation -TargetPath $hoou

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

  1. 我无法理解你在这里要求的是什么。这个问题对我来说没有多大意义。
  2. 存储稍后需要在txt文件中调用的数据是可以的,但您应该考虑将其存储在CSV中。 PowerShell支持使用Import-Csv和Export-Csv命令导出和导入CSV文件。

答案 1 :(得分:0)

您可以将变量存储为.ps1文件中的PowerShell变量吗?

$userId = "username"

然后你可以简单地点源文件:

. C:\path\to\vars.ps1

更新:由于您无法使用PowerShell格式,因此您必须解析输入文件。如果包含用户信息的行与您上面提到的一样

  

UserID:用户名

您可以执行以下操作来提取用户名并将其分配给变量:

$username = Get-Content C:\vars.txt `
              | ? { $_ -match '^\s*UserID:\s*' } `
              | select -First 1 `
              | % { ($_ -split ':\s*', 2)[1] }