Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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第1行列并将其保存到变量_Powershell_Csv - Fatal编程技术网

Powershell 读取CSV第1行列并将其保存到变量

Powershell 读取CSV第1行列并将其保存到变量,powershell,csv,Powershell,Csv,我想从csv或其他txt文件中读取数据。应仅从第1行和第1行上的少数列读取数据,并将其保存到变量中,保存后删除该行。现在我是这样做的: Get-ChildItem -Path C:\path | ForEach-Object -Process { $YourContent = Get-Content -Path $_.FullName $YourVariable = $YourContent | Select-Object -First 1 $YourContent | Select-Objec

我想从csv或其他txt文件中读取数据。应仅从第1行和第1行上的少数列读取数据,并将其保存到变量中,保存后删除该行。现在我是这样做的:

Get-ChildItem -Path C:\path | ForEach-Object -Process {
$YourContent = Get-Content -Path $_.FullName
$YourVariable = $YourContent | Select-Object -First 1
$YourContent | Select-Object -Skip 1 | Set-Content -Path $_.FullName
我的问题是,我的变量输出如下:

Elvis;867.5390;elvis@geocities.com 猫王;867.5390;elvis@geocities.com 所以我想将每个变量保存到它自己的列中。csv的外观示例:

Elvis | 867.5309 | Elvis@Geocities.com Sammy | 555.1234 | SamSosa@Hotmail.com 埃尔维斯| 867.5309 |Elvis@Geocities.com 萨米| 555.1234 |SamSosa@Hotmail.com
使用
Import Csv
而不是
Get Content

Import-Csv file.csv -Delimiter ";" -Header A, B, C

使用
Import Csv
而不是
Get Content

Import-Csv file.csv -Delimiter ";" -Header A, B, C

这里有一个方法可以做我认为你想做的事

  • 前8行构成要使用的文件。[咧嘴笑]
  • 第10行读取该文件
  • 第11-13行将第一行转换为对象并删除不需要的属性
  • 第14-15行抓取除第1行以外的所有行,并将其发送以覆盖源文件
  • 剩下的几行显示做了什么[咧嘴笑]
  • 代码:

    输出

    Alfa;123.456;Some unwanted info;Alfa@example.com
    Bravo;234.567;More info that can be dropped;Bravo@example.com
    Charlie;345.678;This is also ignoreable;Charlie@example.com
    ==============================
    
    Name Number  Email           
    ---- ------  -----           
    Alfa 123.456 Alfa@example.com
    ==============================
    Bravo;234.567;More info that can be dropped;Bravo@example.com
    Charlie;345.678;This is also ignoreable;Charlie@example.com
    

    这里有一个方法可以做我认为你想做的事

  • 前8行构成要使用的文件。[咧嘴笑]
  • 第10行读取该文件
  • 第11-13行将第一行转换为对象并删除不需要的属性
  • 第14-15行抓取除第1行以外的所有行,并将其发送以覆盖源文件
  • 剩下的几行显示做了什么[咧嘴笑]
  • 代码:

    输出

    Alfa;123.456;Some unwanted info;Alfa@example.com
    Bravo;234.567;More info that can be dropped;Bravo@example.com
    Charlie;345.678;This is also ignoreable;Charlie@example.com
    ==============================
    
    Name Number  Email           
    ---- ------  -----           
    Alfa 123.456 Alfa@example.com
    ==============================
    Bravo;234.567;More info that can be dropped;Bravo@example.com
    Charlie;345.678;This is also ignoreable;Charlie@example.com
    

    谢谢你的回答

    我试图进一步澄清我想做的事情。答案可能已经做到了,但我在Powershell中还不是很好,而且学到了很多东西

    如果我有csv或任何其他txt文件,我想读取文件的第一行。该行包含多条信息。我还想将每条信息保存到变量中。将信息保存到变量后,我想删除该行

    例如:

    车型年

    福特嘉年华2015

    奥迪A6 2018


    在本例中,我希望将福特、嘉年华和2015保存到变量(第1行)($Card、$Model、$Year),然后删除该行。第二行不应删除,因为稍后将使用它

    谢谢您的回答

    我试图进一步澄清我想做的事情。答案可能已经做到了,但我在Powershell中还不是很好,而且学到了很多东西

    如果我有csv或任何其他txt文件,我想读取文件的第一行。该行包含多条信息。我还想将每条信息保存到变量中。将信息保存到变量后,我想删除该行

    例如:

    车型年

    福特嘉年华2015

    奥迪A6 2018


    在本例中,我希望将福特、嘉年华和2015保存到变量(第1行)($Card、$Model、$Year),然后删除该行。不应删除第二行,因为它将在以后使用

    ,因此您希望--[1]读取每个文件的第一行--[2]仅使用某些属性将该行转换为对象/////是否正确?如果是这样,请尝试使用
    Get Contnet-TotalCount 1
    获取第一行,然后使用
    ConvertFrom CSV
    将该行转换为对象。您使用
    $YourVariable
    做什么?你提到CSV,你的变量已经非常接近于一。。。只需替换
    像这样
    $YourVariable=($YourContent | Select Object-First 1)-replace(“;”,“,”,”)
    所以您希望--[1]读取每个文件的第一行--[2]仅使用某些属性将该行转换为对象[3]/////这是否正确?如果是这样,请尝试使用
    Get Contnet-TotalCount 1
    获取第一行,然后使用
    ConvertFrom CSV
    将该行转换为对象。您使用
    $YourVariable
    做什么?你提到CSV,你的变量已经非常接近于一。。。只需替换
    类似
    $YourVariable=($YourContent | Select Object-First 1)-replace(“;”,“,”)
    它如何解决请求。要读取第一行,请不使用它进行处理和保存?您必须
    |转换为Csv |选择对象-跳过2 |设置内容…
    ,原始格式将被双qouted版本覆盖。它如何解决req。要读取第一行,请不使用它进行处理和保存?您必须
    |转换为Csv |选择对象-跳过2 |设置内容…
    ,原始格式将被双qouted版本覆盖。