export-csv没有数据问题?

时间:2017-11-30 03:04:07

标签: excel powershell csv

在我的报告中,当我删除export-csv部分时,数据在屏幕上正确显示,当我添加export-csv时,没有导出数据但是创建了文件。下面是我的脚本以及脚本运行(修改)数据外观时的数据。

#Get all DHCP Servers
$ServerList = (Get-Content -Path "\\termserv\DHCPServers.txt")
foreach ($server in $serverlist)
{
#Get the scopes from each serve
     Get-DHCPServerv4Scope -ComputerName $server | select ScopeID | 
#Get the lease information for each scope
     ForEach-Object {Get-DHCPServerv4Lease -ScopeId $_.ScopeId -ComputerName 
     $server -AllLeases  | 
        where {$_.AddressState -like "*Reservation"} | Select-Object 
        $server,ScopeId,IPAddress,HostName,ClientID,AddressState | Export-
        Csv "\\termserv\d$\term\User\Reservations1.csv"
   }
  }

导出时没有export-csv的数据是什么

NOPEDH01: 范围编号:000.11.2.3 IPAddress:111.22.3.444 主机名:NOPE00112233 ClientID:00-11-22-33-44-55 AddressState:ActiveReservation

NOPEDH01: 范围编号:000.11.2.3 IP地址:111.22.3.445 主机名:NOPE0011223344 ClientID:00-11-22-33-44-56 AddressState:ActiveReservation

更新:当我在我的DH服务器上本地运行脚本的修改版本时,它仍然没有尝试,但是我在我的环境中查看了近100台DH服务器,见下文

Get-DHCPServerV4Scope | ForEach {

Get-DHCPServerv4Lease -ScopeID $_.ScopeID -AllLeases | where 
{$_.AddressState -like '*Reservation'}

} | Select-Object ScopeId,IPAddress,HostName,ClientID,AddressState | Export-
Csv "\\termserv\d$\term\$($env:COMPUTERNAME)-Reservations1.csv" -
NoTypeInformation

2 个答案:

答案 0 :(得分:1)

这表示您正在做的事情:

gsub("(?<=[\\s+])[0-9]", "\t", test2, perl=TRUE)

这样做会导出数据ABRIGO PIZARRO PATRICIO ESTEBAN \t 16024716-9 \t VAR \t PUEB ALCERRECA \t GENERAL LAGOS \t 5V ABURTO VELASCO ESTHER MARISOL \t 13005517-6 \t MUJ \t VILLA INDUSTRIAL \t GENERAL LAGOS \t 2M 次,这是很多I / O操作。这只是一个物流问题。您可以在导出之前将整个信息收集到表对象中。但是,这个决定取决于您和您的特定业务需求。

然而,真正的问题是你正在导出到同一个文件中,这个文件基本上是在你没有告诉它之前写下你以前写的任何内容。因此,只有最后一次出口仍然存在,我怀疑它是空白的。

导出时尝试使用Foreach ($Server in $ServerList) { Foreach ($Scope in $ScopeList) { $Data | Export-csv -Path FileName.csv } } 开关。

[(Total Servers) x (Total Scopes per server)]

此外,我注意到您在-Append cmdlet中使用$Data | Export-csv -Path FileName.csv -NoTypeInformation -Append 变量,您应该只使用对象的属性名称而不是变量名称。我不知道是否返回任何内容,因为cmdlet不知道如何处理它,这也可能导致问题。

答案 1 :(得分:0)

根据您的代码,您在Export-Csv内使用foreach-object。通常Export-csv会创建包含新数据的csv文件。如果csv文件中已存在数据,则它将使用新数据覆盖现有数据。 所以不要使用

Export-Csv "\\termserv\d$\term\User\Reservations1.csv"

你可以使用

Export-Csv "\\termserv\d$\term\User\Reservations1.csv" -Force -Append -NoTypeInformation

此处-Append会将数据附加到csv文件中。没有覆盖。