我每天下载一个.csv
文件,在将其用于其他软件之前需要先清理一下。
该文件包含有关在餐厅进行的控制的数据,其中新控件在文件中产生新行,这意味着每个餐馆可以有多个条目 - 我只需要最新的。
以下是.csv
文件的一部分(仅包含4列):
接头
orgnummer;navn;dato;total_karakter
4个随机行
985129576;Økern Sushi;21092016;1
785423684;Å cafe;09072017;2
458792365;Varangerkroa;01012018;0
985129576;Økern Sushi;05052018;0
每个餐厅的 orgnummer
和navn
都是唯一的。
在我的示例中,脚本应删除ØkernSushi的顶部条目。
到目前为止我的脚本:
$temp = Import-Csv 'C:\Users\Downloads\tilsynPS.csv' -Delimiter ';'
#change date format to desired format
foreach($row in $temp) {
$year = $row.dato.Substring($row.dato.Length - 4, 4)
$month = $row.dato.Substring($row.dato.Length - 6, 2)
$day = $row.dato.Substring(0, $row.dato.Length - 6)
$date = New-Object System.DateTime $year,$month,$day
$row.dato = $date
}
#Here's my attempt at sorting and deleting old records:
sort orgnummer, dato -Descending
$temp[0]
for ($i=1; $i -le $temp.length -1; $i++) {
if ($temp[$i]."orgnummer" -eq $temp[$i-1]."orgnummer"){
continue
}
else {$temp[$i]}
}
#export to csv
$temp | Export-Csv -Encoding UTF8 -NoTypeInformation -path C:\Users\Downloads\tilsynPS_redigert.csv
还试过这个版本的代码:
sort -Property @{Expression="dato";Descending=$true},
@{Expression="navn";Descending=$false}
$temp[0]
for ($i=1; $i -le $temp.length -1; $i++) {
if ($temp[$i]."navn" -eq $temp[$i-1]."navn"){
continue
}
else {$temp[$i]}
}
这是我在PowerShell中的第一个脚本,非常感谢任何帮助。已经注意到类似的问题,但PowerShell中没有一个是我在这里工作的。
答案 0 :(得分:1)
我觉得你差不多了。此解决方案将结果累积到一个新数组中并导出。只有当orgnummer不同或者它们持有的日期更新时才会添加行。
请注意,对于测试,我必须更改导入和导出文件的路径。
<asp:Panel ID="pnlMotivoRejeitarTitulo" runat="server" Width="610px">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Button runat="server" ID="btnShowModalPopup2" Style="display: none" />
<ajaxToolkit:ModalPopupExtender ID="modalRejeitarTitulo" runat="server" TargetControlID="btnShowModalPopup2"
PopupControlID="divPopUp2" BackgroundCssClass="popUpStyle" PopupDragHandleControlID="panelDragHandle"
DropShadow="true" RepositionMode="RepositionOnWindowResize" />
<div class="popUpStyle" id="divPopUp2" style="display: none;">
<div style="width: 600px; max-height: 160px;">
<asp:Panel runat="Server" ID="panel1" CssClass="drag01">
<asp:Label ID="lblTituloModal" runat="server" Text="EXCLUIR TÍTULO?"></asp:Label>
<br />
</asp:Panel>
<div class="subtitulo">
<asp:Label ID="lblMensagemOrigemAgregadoMiudo" runat="server" Text=""></asp:Label>
</div>
<br />
<asp:Panel ID="pnlRejeitarTitulo" runat="server" Width="550px" BackColor="#CCCCCC"
CssClass="centralizaPanel" BorderStyle="Outset">
<div style="padding-top: 10px;">
<div class="campo">
<div class="label_formulario8">
<asp:Label ID="lblId" runat="server" Text="ID: "></asp:Label>
</div>
<asp:TextBox ID="txtId" runat="server" Width="100px" ReadOnly="true"></asp:TextBox>
</div>
<div class="campo">
<div class="label_formulario8">
<asp:Label ID="Label3" runat="server" Text="Descrição: "></asp:Label>
</div>
<asp:TextBox ID="txtDescricao" runat="server" Width="300px"></asp:TextBox>
</div>
<br />
</div>
<div class="centraliza_botao">
<asp:Button ID="btnConfirmarExcluirTitulo" runat="server" Text="Confirmar" CssClass="btn btn-primary" OnClick="btnConfirmarExcluirTitulo_Click"
Style="height: 31px" CausesValidation="false" />
<asp:Button ID="btnFecharExcluirTitulo" runat="server" Text="Fechar" CssClass="btn btn-warning"
Style="height: 31px" CausesValidation="false" OnClick="btnFecharExcluirTitulo_Click" />
</div>
<br />
</asp:Panel>
</div>
<br />
<br />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>