2013-07-09 115 views
1

我想附加一個CSV文件。這是我正在使用的行。不幸的是,我無法找到export-csv的附加選項。任何想法將有助於讓這個工作。Powershell附加CSV

Get-ADGroupMember "Domain Admins" | select name, samaccountname | Export-Csv c:\bin\DomainAdmins.csv 

$admins = Import-Csv C:\bin\DomainAdmins.csv 

foreach ($i in $admins) {Get-ADUser $i.samaccountname -properties * | select name, lastlogondate | Export-Csv c:\bin\dalogon.csv} 

謝謝你, 埃裏克

+0

你正在寫兩個不同的CSV文件。追加進入圖片的位置在哪裏?你能更清楚嗎? – manojlds

+0

你想在這裏追加什麼?列到原始記錄?你爲什麼不把它們放在第一行?如果你只是想追加另一組項目,那麼使用ConvertTo-Csv -NoTypeInformation,去掉標題並用「Add-Content」或「Out-File」將它附加到文件中。或者將它們添加到從文件導入的數組中並重新寫入文件。 – Joey

回答

4

documentation表明,有一個-append標誌。給出的示例結束於

| export-csv –append –path \\Archive01\Scripts\Scripts.csv 

你試過嗎?這對我來說可以。如果有問題,我在版本3上。

+0

Doh!上次我檢查我記得它不被支持。感謝提醒我查看文檔。 – user2565554

+0

沒問題,我確定明天我會在你的座位上。我注意到你是StackOverflow的新手 - 如果這能解決你的問題,你能否通過投票箭頭檢查複選標記以將答案標記爲已接受?還有一個關於某個地方的常見問題解答,它描述了整個投票流程,但是看起來好像有人已經走了,並在我沒有看的時候重新設計了幫助部分(http://stackoverflow.com/help)。 – dsolimano

4

-Append是在PowerShell v3中引入的,它在PowerShell v2及更早版本中不可用。你可以這樣解決它:

... | ConvertTo-Csv -NoTypeInformation ` 
    | select -Skip 1 ` 
    | Out-File -Append "c:\bin\dalogon.csv" 
0

這很好!但在CSV文件中只有1列!如何把許多列作爲代碼如下:

Import-Module -Name 'C:\Program Files\Quest Software\Management Shell for AD\Quest.ActiveRoles.ArsPowerShellSnapIn.dll' 
$group="HO-Internet","Internet1","Internet2","Internet3" 
$group |ForEach-Object {Echo "--------------------Group Name $_ ----------------"; Get-QADGroupMember $_ | Select-Object Email,LogonName,ParentContainer,LastLogon,AccountIsDisabled |ConvertTo-Csv -NoTypeInformation ` 
    | select -Skip 1 ` 
    | Out-File -Append "D:\test.csv"} 
+0

嗯......問題或答案?如果前者,請發佈... [問題](http://stackoverflow.com/questions/ask):-) – kleopatra

1

我也遇到了這個問題也在前幾天。在Powershell 2中我確實知道了兩種解決方案。第一種方法是將所有數據保存在數組中,然後使用export-csv commandlet。除非我重寫我的劇本,否則這對我不起作用。我需要創建一個CSV並逐行添加來構建文件。所以,我用out-file -append解決了它,並將編碼更改爲ascii。

我基本上創建了一個包含我的數據的字符串,然後將其傳送到out-file。這裏有一個例子:

$myCSV = "C:\_PSScripts\data\myCSV.csv" 
$firstOutputLine = "Column-1,Column-3,Column-3" 
$firstOutputLine | out-file $myCSV -Encoding ascii -Force -Append