파일 서버에 저장된 파일을 가리키는 정보가 들어있는 테이블이 있습니다. CSV 파일에 쓰지 않는 경우 테이블의 각 레코드가 서버에 연결된 실제 파일을 가지고 있는지 확인하기 위해 powershell 스크립트를 작성하려고합니다. 나는 행운을 빌어 요 CSV 부분을 가지고 있지 않으며 당신이 도울 수 있기를 바라고 있었습니까?db 쿼리 결과를 CSV 파일에 삽입하는 데 도움이됩니다.
여기가 내가 지금까지 가지고있는 것입니다 (이 작업을 수행하는 더 좋은 방법이 있다면 알려 주시기 바랍니다. Im 브랜드는 PowerShell을 처음 사용합니다). 테스트 경로가 문제의 파일을 찾지 못한 경우에만 CSV에 레코드를 추가하려고합니다.
[Reflection.Assembly]::LoadFile("C:\ora10g\odp.net\bin\2.x\Oracle.DataAccess.dll")
$connectionString = "Data Source=XXXXXX;User Id=XXXX;Password=XXXXXXXX;"
$connection = New-Object Oracle.DataAccess.Client.OracleConnection($connectionString)
$connection.Open()
$queryString = "SELECT Key, Sequence, Type, File FROM FileTable WHERE Type IN (2, 5)"
$command = new-Object Oracle.DataAccess.Client.OracleCommand($queryString, $connection)
$mediaObjRS = $command.ExecuteReader()
# Loop through recordset
while ($mediaObjRS.read()) {
# Assign variables from recordset.
$objectKey = $mediaObjRS.GetString(0)
$objectSeq = $mediaObjRS.GetDecimal(1)
$objectType = $mediaObjRS.GetDecimal(2)
$objectFileName = $mediaObjRS.GetString(3)
# Check if file exists based on filetype.
if($objectType -eq 2){
# Type 2 = OLE
$fileLocation = "\\fileserver\D$\files\" + $objectFileName
}elseif($objectType -eq 5){
# Type 5 = FILE
$fileLocation = $objectFileName
}
$fileExists = Test-Path $fileLocation
if($fileExists -eq $False){
#Write to output file
$objectKey | Export-Csv missingfiles.csv
$objectSeq | Export-Csv missingfiles.csv
$objectType | Export-Csv missingfiles.csv
$objectFileName | Export-Csv missingfiles.csv
}
}
$connection.Close()
감사합니다. 그것은 꽤 도움이되었습니다. 내가 바꿔야 만했던 것은'$ obj = new-object -psobject -prop @ {'~'$ obj = new-object psobject -prop @ { ' – ProfessionalAmateur