누군가가이 문제를 해결할 수 있습니다. 머리글을 사용하여 CSV에서 체크리스트 상자를 생성하려고합니다. 그런 다음 해당 칼럼에있는 제목과 데이터가있는 export-cvs 만 체크합니다.Powershell, CSV 및 Checklistbox
헤더와 필드의 양은 다른 CVS에서 변경되므로 하드 코드 할 수 없습니다.
현재 나는 checklistbox의 헤더를 채 웁니다 추적 코드를 사용하지만,
이름, 종, 연령, 품종, 촬영 아래의 모든 한 줄에
Get-Content $list | select -First 1
쇼를 생성
내가 무엇을하고 싶은지는 다음과 같은 체크 박스 바로 옆에있는 이름을 생성하는 것입니다.
이름 종 나이 번식 샷
그런 다음 체크 필드를 내보내기 -CSV로 가져올 수 있습니다. 덕분에 미리
의# # # # # # # # # # # # # # # # # # # # #
올 아웃이 프로그램은 내가 당신을 감사 찾고 있어요 정확히입니다. 하지만 문제는 내가 지금 시도하고 프로그램에 그것을 통합하는 것입니다 나는 그것이 전체 문제가 꽤 큰 하나의 해결사가되기를 바랐지만 이것이 문제가있는 부분입니다. 여기에 원래 코드는
이 부분은 비교 CSV
$MasterBtn_Click={
if($openfile.ShowDialog() -eq 'OK')
{
$MasterTxT.Text = $openfile.FileName
$MasterLT = $MasterTxT.Text
}
$labelFormHeaders.Text = Get-Content $MasterLT | select -First 1
}
을로드하고 난 설명서를했을 것으로, 텍스트 상자의 현재
$buttonStartProcess_Click={
$script:CancelLoop = $false
$buttonCancelProcess.Enabled = $true
$this.Enabled = $false
$progressbar1.Value = 0
for($i = 0; $i -lt $progressbar1.Maximum; $i++)
{
#----------------------------------------
$col1 = $textbox1.text
$col2 = $textbox2.text
$col3 = $textbox3.text
$col4 = $textbox4.text
$col5 = $textbox5.text
$col6 = $textbox6.text
$list = $EventLt
$Data = $MasterLT
$Userlist = Import-csv -path $list
$userData = Import-Csv -Path $Data
$UserOutput = @()
$Result = "C:\Temp\Results1.csv"
ForEach ($name in $UserList)
{
$userMatch = $UserData | where {$_.ID -eq $name.usernames}
If($userMatch)
{
# Process the data
$UserOutput += New-Object PsObject -Property @{ID =$name.usernames; "$col1" = $userMatch.$col1; "$col2" =$userMatch.$col2; "$col3" =$userMatch.$col3;"$col4" =$userMatch.$col4;"$col5" =$userMatch.$col5;"$col6" =$userMatch.$col6} #
}
else
{
$UserOutput += New-Object PsObject -Property @{ID =$name.usernames; "$col1" ="NA";"$col2" ="NA";"$col3" ="NA";"$col4" ="NA";"$col5" ="NA";"$col6" ="NA"}
}
}
$UserOutput | Select-Object "ID","$col1","$col2","$col3","$col4","$col5","$col6" | Export-Csv -Path $Result -NoTypeInformation
sleep -Milliseconds 200
[System.Windows.Forms.Application]::DoEvents()
if($script:CancelLoop -eq $true)
{
$progressbar1.Value = 0
break;
}
r
$progressbar1.PerformStep()
}
$this.Enabled = $true
$buttonCancelProcess.Enabled = $false
}
내가이 무리 내 선택 내보내는 것이이 부분 헤더를 입력하십시오. 나는 그것을 제거하고 박스가 체크되고 "$ buttonstartprocess"를 눌렀을 때 체크 박스에서 그 옵션을 가져 와서 내가 원하는 행을 줄 수있는 생성 된 체크 박스리스트를 갖고 싶다. 나는 누구도 잃지 않기를 바래. 다시 한 번 감사드립니다.
이름, 종족 ...은 일련의 필드 이름 (열 이름)입니다. CSV 파일에서 찾으려는 것입니까? 그렇다면, 제가 약간 다른 문제를 해결할 수있는 도구를 가지고 있지만, 적응할 수있는 코드가 포함되어 있습니다. –