Windows tip: Gegevensrecords filteren en opslaan met een script - hoe doe je dat efficiënt?
Individuele gegevensrecords uit databases filteren en in een apart bestand opslaan: in plaats van kilometerslange Excel-commando's en copy-paste marathons met de console.
Een kennis van mij beheert op vrijwillige basis de ledendatabase van een grote turn- en schietvereniging. Sinds de invoering van de herziene Wet Bescherming Persoonsgegevens mag hij niet meer de hele Excel-lijst verspreiden, maar alleen individuele, deels geanonimiseerde gegevensrecords.
Om bijvoorbeeld lijsten voor autopools te maken, moet hij filteren in Excel en de gegevensrecords moeizaam kopiëren en plakken in andere bestanden. Dat is veel werk.
Query's uitvoeren in PowerShell
Dit is eenvoudiger met een PowerShell script. Dit moet zoeken naar de relevante parameters in de database, de respectieve gegevensrecords uitlezen en ze kopiëren naar een nieuw, afzonderlijk tekstbestand. Dit werkt alleen als de database het formaat ".txt", ".ini" of ".csv" heeft. Je kunt bestanden in ".xlsx" opslaan als een kopie in ".csv".
Hoe bouw je het bijbehorende script:
- Open de map waarin je het CSV-bestand (of het TXT- of inibestand) hebt opgeslagen.
- Open PowerShell door op een vrije plaats in de map te klikken en "Open in Terminal" te selecteren.
- Typ de volgende parameters in het tekstveld:
get-Content '.\contacts.csv' | Select-String -pattern "Winterthur" | Out-File resultat.txt
en druk op Enter. Het eerste deel van de opdracht selecteert het tekstbestand in kwestie. Het tweede selecteert de records die aan je voorwaarden voldoen. Nummer drie slaat de zoekresultaten op in een tekstbestand. In mijn bestand zijn nu alle gegevensrecords geselecteerd die de parameter "Winterthur" bevatten. Je kunt de zoekterm vervangen door elke term die je maar wilt.
- Het bestand wordt nu aangemaakt in dezelfde map waar je database staat.
Je hebt nu een tekstbestand met de bijbehorende gegevensrecords - je moet natuurlijk wel de bestandsnaam, in mijn geval "contacts.txt" en het patroon, in mijn geval "Winterthur", veranderen.
Noot: Deze tip en de opdracht hebben betrekking op één gebruiksgeval. Heb jij soortgelijke problemen waarmee ik je zou kunnen helpen? Schrijf ze dan in de opmerkingen. Ik zal proberen ze te beantwoorden in andere Windows tips.
Sinds ik ontdekt heb hoe ik beide telefoonkanalen op de ISDN kaart kan activeren voor meer bandbreedte, ben ik aan het knutselen met digitale netwerken. Ik knutsel al met analoge netwerken sinds ik kan praten. Winterthur door keuze met een rood-blauw hart. En koffie - voor, na, tussendoor en tijdens.