如何在Powershell中对有关SQL结果的存储的哈希表信息进行变量

问题描述

方案:我试图从SFTP中获取一堆文件,然后对其进行遍历以将文件参数与“审核”表中的文件参数进行比较,如果是全新文件,则将信息插入到审核表中。 / p>

这是我的代码

 $directory = $session.ListDirectory("/broken/")
$session.dispose()

foreach ($fileInfo in $directory.Files)
    {
        $FileName  = $($fileInfo.Name)
        $FileSize = $($fileInfo.Length)
        $DateModified = $($fileInfo.LastWriteTime)
        
        If($FileName  -eq '.' -or $FileName -eq '..' )
        {
         continue
        }
         
        #Check if file was downloaded earlier  
        $sqlConnection = New-Object System.Data.sqlClient.sqlConnection
        $sqlConnection.ConnectionString = "Server = $sqlServer; Database = $sqldbname; User ID = $sqlUsername; Password = $sqlPassword"
        $sqlCmd = New-Object System.Data.sqlClient.sqlCommand
        $sqlCmd.CommandText = "SELECT [FileName],[DateModified],[FileSize] FROM [FTP].[dbo].[Log] WHERE FileName='$FileName'"
        $sqlCmd.Connection = $sqlConnection
        $sqlAdapter = New-Object System.Data.sqlClient.sqlDataAdapter
        $sqlAdapter.SelectCommand = $sqlCmd
        $DataSet = New-Object System.Data.DataSet
        $sqlAdapter.Fill($DataSet)
        $sqlConnection.Close()
        $Result = $DataSet.Tables[0]
        ####  

现在,我已将SQL查询信息提取到我的PowerShell哈希表变量中。 然后如何比较结果是否返回

我尝试做以下几件事:

If ($Result.Matches.Count -ne 0 ){
            ### Naming the files 
            $sqlFTPFileName = $Result.RemoteFileName[0]
            $sqlFTPFileDateModified = $Result.DateModified[0]
            $sqlFTPFileSize = $Result.FileSize[0]
            ###
OR

If ($Result.RemoteFileName[0] -ne 0 ){
            ### Naming the files 
            $sqlFTPFileName = $Result.RemoteFileName[0]
            $sqlFTPFileDateModified = $Result.DateModified[0]
            $sqlFTPFileSize = $Result.FileSize[0]
            ###


            }

您能在这里帮助我吗?

感谢您的帮助,感激不尽。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)