【发布时间】:2016-01-19 16:18:22
【问题描述】:
我有两个 CSV:
-
Total 19_01_16.csv:主机名、用户、路径、大小、创建、上次访问、已复制、新名称、已完成 comp1,user1,\\comp1\users1\file.pst,100,17/02/2015,17/01/2016,是,file_user1_.pst, comp1,user1,\\comp1\users1\file2.pst,200,17/02/2015,17/01/2016,是,file2_user1_.pst, comp2,user2,\\comp2\users2\file.pst,100,17/02/2015,17/01/2016,Yes,file_user2_.pst,
-
PST Passwords.csv:用户,路径,密码1,密码2,密码3,错误 user1,\\comp1\users1\file.pst,openme,openme,openme,
我正在尝试将两者与不同的标题和其他内容合并。 这是我目前所拥有的:
$a = Import-Csv "$PST_PARENT\DailyReports\Total 19_01_16.csv"
"Hostname,User,PST_Name,Original_Path,New_Path,Size,AcceptableLoss,Password1,Password2,Password3" |
Set-Content "$PST_PARENT\DailyReports\New Build.csv"
$a | foreach {
$HOSTNAME = $_.hostname
$USER = $_.User
$PATH = $_.path
$NEW_NAME = $_.NewName
$NEWPATH = "$PST_SHARE\$USER\$NEW_NAME"
$SIZE = $_.Size
$SIZE_FAIL = ( [convert]::ToSingle( $SIZE ) / 2 )
$b = Import-Csv "$PST_PARENT\DailyReports\PST Passwords.csv"
$b | foreach {
if ( $USER -like $b.user ) {
$PASSWORD1 = $b.password1
$PASSWORD2 = $b.password2
$PASSWORD3 = $b.password3
} else {
$PASSWORD1 = "none"
$PASSWORD2 = "none"
$PASSWORD3 = "none"
}
}
$HOSTNAME,$USER,$NEW_NAME,$PATH,$NEWPATH,$SIZE,$SIZE_FAIL,$PASSWORD1,$PASSWORD2,$PASSWORD3 |
Add-Content "$PST_PARENT\DailyReports\New Build.csv"
}
New Build.csv 的输出如下所示:
Hostname,User,PST_Name,Original_Path,New_Path,Size,AcceptableLoss,Password1,Password2,Password3 补偿1 用户1 文件.pst \\comp1\users1\file.pst \\share\PST_Storage\file_user1_.pst 100 5 没有任何 没有任何 没有
本质上,输出是有效的,它只是不滚动每一行,而是将每个数组放到一个新行上。
我尝试添加| ConvertTo-Csv -NoTypeInformation,但所做的只是将数组转换为数字,它们仍然没有通过。
有什么想法吗?我是在正确的路线上还是在做整个事情都非常错误?
【问题讨论】:
标签: arrays csv powershell