Je veux stocker la sortie de:
$Application = Get-EventLog -LogName Application | Where-Object {($_.EntryType -like "Error" -or $_.EntryType -like "Warning")};
dans un tableur Excel.
J'ai essayé de faire: $Application | Out-File E:app.csv;
Je reçois la sortie en tant que:
Comme vous pouvez le constater, les colonnes ne sont pas alignées séparément dans la feuille de calcul Excel et les valeurs / contenu des colonnes sont incomplets et se terminent par (...).
Je souhaite stocker correctement les valeurs complètes que chaque colonne contient dans le tableur Excel.
Réponses:
0 pour la réponse № 1Comme déjà mentionné dans le commentaire, vous recherchez Export-Csv
cmdlet qui Converts objects into a series of comma-separated (CSV) strings and saves the strings in a CSV file
. Vous pouvez faire quelque chose comme ça -
$Application = Get-EventLog -LogName Application | Where-Object {($_.EntryType -like "Error" -or $_.EntryType -like "Warning")};
$Application | Export-Csv -path E:app.csv -NoTypeInformation
La prochaine étape de votre problème serait de convertir le csv
déposer dans excel
fichier car vous avez besoin de données stockées dans un tableur Excel. Vous trouverez ci-dessous le code que j'utilise avec succès depuis un certain temps.
#Define locations and delimiter
$csv = "E:app.csv" #Location of the source file
$xlsx = "E:app.xlsx" #Desired location of output
$delimiter = ";" #Specify the delimiter used in the file
# Create a new Excel workbook with one empty sheet
$excel = New-Object -ComObject excel.application
$workbook = $excel.Workbooks.Add(1)
$worksheet = $workbook.worksheets.Item(1)
# Build the QueryTables.Add command and reformat the data
$TxtConnector = ("TEXT;" + $csv)
$Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))
$query = $worksheet.QueryTables.item($Connector.name)
$query.TextFileOtherDelimiter = $delimiter
$query.TextFileParseType = 1
$query.TextFileColumnDataTypes = ,1 * $worksheet.Cells.Columns.Count
$query.AdjustColumnWidth = 1
# Execute & delete the import query
$query.Refresh()
$query.Delete()
# Save & close the Workbook as XLSX.
$Workbook.SaveAs($xlsx,51)
$excel.Quit()
Le code ci-dessus convertira le csv
déposer dans un XLSX
fichier. Tu peux voir ce pour plus d'informations.
0 pour la réponse № 2
Vous pouvez exporter au format CSV avec un -Delimiter "
#seperator"
séparer les colonnes dans Excel
ça pourrait ressembler à ça
$Application | Export-Csv C:test.csv -Delimiter ";"