Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 在csv上导入csv目标单元格_Powershell - Fatal编程技术网

Powershell 在csv上导入csv目标单元格

Powershell 在csv上导入csv目标单元格,powershell,Powershell,我有一个带有用户名列表的csv 我只想导入csv文件的一个单元格,例如A2 有可能是那样具体吗?我试过用谷歌搜索这个问题,但没有找到确切的解决办法。也尝试过powershell帮助 这能做到吗 谢谢 Confuseis下面的示例将仅从test.csv中选择并输出“cell”A2 在本例中,A行的列标题为“username” $inFile = Import-Csv c:\Temp\test.csv $targetCell = $inFile.username[1] Write-Output $t

我有一个带有用户名列表的csv

我只想导入csv文件的一个单元格,例如A2

有可能是那样具体吗?我试过用谷歌搜索这个问题,但没有找到确切的解决办法。也尝试过powershell帮助

这能做到吗

谢谢


Confuseis

下面的示例将仅从test.csv中选择并输出“cell”A2

在本例中,A行的列标题为“username”

$inFile = Import-Csv c:\Temp\test.csv
$targetCell = $inFile.username[1]
Write-Output $targetCell
此代码段正在执行以下操作:

  • 导入csv文件,生成PowerShell对象
  • 选择要使用的列,该列中的项可以视为数组。通过引用该列的零基索引值,在该列中选择所需的项
  • 输出结果

  • 下面的示例将仅从test.csv中选择并输出“cell”A2

    在本例中,A行的列标题为“username”

    $inFile = Import-Csv c:\Temp\test.csv
    $targetCell = $inFile.username[1]
    Write-Output $targetCell
    
    此代码段正在执行以下操作:

  • 导入csv文件,生成PowerShell对象
  • 选择要使用的列,该列中的项可以视为数组。通过引用该列的零基索引值,在该列中选择所需的项
  • 输出结果

  • Import CSV
    从输入文件创建对象数组。CSV第一行中的列标签将成为特性名称。其他行是数组中的对象。与任何数组一样,可以使用括号调用一个元素

    $arrUsers = Import-CSV c:\temp\users.csv
    $arrUsers[1] 
    
    上面的第二个命令打印第二个对象,因为计数从0开始。此对象来自CSV文件的第三行,因为第一行用作列标题

    如果使用
    Get Member
    ,它将显示对象的成员(属性和方法)

    $arrUsers | Get-Member
    
    假设其中一个成员是
    用户名
    ,将其与数组索引相结合,可以使用:

    $arrUsers[1].username
    

    导入CSV
    是一个非常灵活的工具。特别是与
    Foreach
    Export CSV
    结合使用。在
    获取帮助
    获取成员
    之间,您可以轻松浏览Powershell。祝你好运。

    导入CSV从输入文件创建一个对象数组。CSV第一行中的列标签将成为特性名称。其他行是数组中的对象。与任何数组一样,可以使用括号调用一个元素

    $arrUsers = Import-CSV c:\temp\users.csv
    $arrUsers[1] 
    
    上面的第二个命令打印第二个对象,因为计数从0开始。此对象来自CSV文件的第三行,因为第一行用作列标题

    如果使用
    Get Member
    ,它将显示对象的成员(属性和方法)

    $arrUsers | Get-Member
    
    假设其中一个成员是
    用户名
    ,将其与数组索引相结合,可以使用:

    $arrUsers[1].username
    

    导入CSV
    是一个非常灵活的工具。特别是与
    Foreach
    Export CSV
    结合使用。在
    获取帮助
    获取成员
    之间,您可以轻松浏览Powershell。祝您好运。

    使用导入Csv时,您可以将内容转换为PSCustomObject

    下表中的示例:

    PS> $csv = Import-Csv .\test.csv
    PS> $csv
    
    ProcessName     Id    WS        CPU
    -----------     --    --        ---
    sihost          5996  30015488  44.640625
    pia_nw          11064 10620928  52.921875
    pia_nw          2344  7933952   104.0625
    RuntimeBroker   6500  77500416  177.34375
    SettingSyncHost 6736  5074944   202.796875
    explorer        6600  284934144 272.140625
    ipoint          920   3162112   372.78125
    rubyw           10648 18026496  389.46875
    pia_nw          3108  31330304  1640.5625
    OneDrive        10208 33206272  6422.4375
    
    因此,您需要一个NoteProperty名称来调用您要查找的值

    PS> $csv.ProcessName[0]
    sihost
    
    另一种方法是制作一个头数组,并使用它对数据进行切片

    如果使用对象,请执行以下操作:

    PS> $header = ($csv | ConvertTo-Csv -NoTypeInfo)[0] -replace '"' -split ",";
    >>
    PS> $header
    ProcessName
    Id
    WS
    CPU
    
    或者,如果正在使用该文件:

    PS> $header = (gc .\test.csv)[0] -replace '"' -split ',';
    ProcessName
    Id
    WS
    CPU
    
    然后使用适当的索引:

    PS> $csv[0]."$($header[0])"
    sihost
    
    最后是xlsx文件上的Excel.Application-ComObject方法。这将允许您选择单元格和范围

    PS> $file = "C:\Some\Path\IMade\Up\test.xlsx"
    PS> $objExcel = New-Object -ComObject Excel.Application
    PS> $objExcel.Visible = $false
    PS> $wb = $objExcel.Workbooks.Open($file)
    PS> $ws = $wb.Sheets.Item(1)
    PS> $ws.Range("A2").Text
    sihost
    
    有关使用COM对象的更多信息,请参见:

    使用导入Csv时,将内容转换为PSCustomObject

    下表中的示例:

    PS> $csv = Import-Csv .\test.csv
    PS> $csv
    
    ProcessName     Id    WS        CPU
    -----------     --    --        ---
    sihost          5996  30015488  44.640625
    pia_nw          11064 10620928  52.921875
    pia_nw          2344  7933952   104.0625
    RuntimeBroker   6500  77500416  177.34375
    SettingSyncHost 6736  5074944   202.796875
    explorer        6600  284934144 272.140625
    ipoint          920   3162112   372.78125
    rubyw           10648 18026496  389.46875
    pia_nw          3108  31330304  1640.5625
    OneDrive        10208 33206272  6422.4375
    
    因此,您需要一个NoteProperty名称来调用您要查找的值

    PS> $csv.ProcessName[0]
    sihost
    
    另一种方法是制作一个头数组,并使用它对数据进行切片

    如果使用对象,请执行以下操作:

    PS> $header = ($csv | ConvertTo-Csv -NoTypeInfo)[0] -replace '"' -split ",";
    >>
    PS> $header
    ProcessName
    Id
    WS
    CPU
    
    或者,如果正在使用该文件:

    PS> $header = (gc .\test.csv)[0] -replace '"' -split ',';
    ProcessName
    Id
    WS
    CPU
    
    然后使用适当的索引:

    PS> $csv[0]."$($header[0])"
    sihost
    
    最后是xlsx文件上的Excel.Application-ComObject方法。这将允许您选择单元格和范围

    PS> $file = "C:\Some\Path\IMade\Up\test.xlsx"
    PS> $objExcel = New-Object -ComObject Excel.Application
    PS> $objExcel.Visible = $false
    PS> $wb = $objExcel.Workbooks.Open($file)
    PS> $ws = $wb.Sheets.Item(1)
    PS> $ws.Range("A2").Text
    sihost
    
    有关使用COM对象的更多信息,请参见:

    太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了,太棒了<代码>$infle[1]。用户名实际上,任何一种方法都有效$username[1]或$infle[1]。username给出相同的值。您将索引放在username属性上,而不是数组上<代码>$infle[1]。用户名实际上,任何一种方法都有效$username[1]或$infle[1]。username给出相同的值。