【问题标题】:Bash or Powershell scripting help needed需要 Bash 或 Powershell 脚本帮助
【发布时间】:2016-11-17 19:13:37
【问题描述】:

我需要导入一个 .csv 文件,其中包含 2 列和 40 行用户及其计算机名称。请在下面查看有关如何设置工作簿的示例。

名称栏

我需要从脚本中将 NAME 列中的用户回显到一个文件夹,该文件夹将以他们的计算机命名,该信息存储在每个用户的计算机名列中(所以 40 次)。

我尝试了一个 powershell 行,但没有按预期工作。

也尝试为此使用 bash,但计算机名称有问题

但到目前为止,我被困在这里。将继续对此进行抨击,但也许社区中的某个人可以分享他们的智慧!

http://i.stack.imgur.com/RrMpG.png

$dataSource=import-csv "C:\temp\local_admin.csv"
foreach($dataRecord in $datasource) {
    $Name=$dataRecord.Name
    $CN=$dataRecord.CN
    echo $name > $CN.txt until end 
}

这是我试图开始工作的 bash 行。

for /f "usebackq" %%X in ("c:\temp\local_admin.txt") do (echo %%X > 
c:\temp\test\%computername%.txt)

【问题讨论】:

  • 只需编辑问题并尽可能粘贴代码,如果您无法正确设置格式,有权限的人可能会提供帮助,但如果代码不正确,我们就不能t 可用。
  • 请将代码粘贴为文本,而不是图像。如果可以的话,我会帮助格式化代码,但我不会从图像中转录它!
  • 会再试一次! :)
  • 我真是个白痴!但我想通了。对不起,我是个土豆……
  • 没关系,这是一个好的开始。我有一些问题:1)有点不清楚CSV中存在哪些列。两列? NameCN? 2)当你运行你的PowerShell时会发生什么?结果是什么?它与您想要的有什么不同?

标签: windows bash powershell scripting windows-7


【解决方案1】:

我不确定我是否完全理解你想要什么,但这应该能让你接近 Powershell:

$outDir = "C:\Temp\Output\"
$dataSource=import-csv "C:\temp\local_admin.csv"
foreach($dataRecord in $datasource) {
    $Name=$dataRecord.Name
    $CN=$dataRecord.CN
    $Name | Out-File $outDir$CN".txt"
}

这将在数据源中每行输出一个文件。该文件将被命名为计算机名称,并将在文件中包含相关人员的姓名。您应该能够根据需要进行调整以满足您的需要。

【讨论】: