PowerShell ISE从数据集返回设置路径



我正在尝试设置我要从数据库中的字段导航到的路径。然而;我一直遇到有关|的错误格式桌命令。删除格式表不允许显示数据集,因此我需要将其保留在此处。当我编写主机$路径时,返回了正确的值,但是如果我尝试设置位置$路径,那就是我收到错误时:

The object of Type "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" is not valid or not in the correct sequence. 
This is likely caused by a user-specified "format-table" command which is conflicting with the default formatting.

我已经包含了我在下面使用的代码。抱歉,如果这很简单,我知道PowerShell。

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$DataSet = New-Object System.Data.DataSet
$SqlConnection.ConnectionString = "MyConnection"
cls
$SQLQuery = "SELECT setting, value FROM Table"

$SqlConnection.Open()
$SqlCmd.CommandText = $SQLQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] | Format-Table -Autosize
$SqlConnection.Close()
    foreach ($Row in $dataset.Tables[0].Rows) 
{ 
    IF ("$($Row.setting)" -eq "ArchiveDir" -and "$($Row.value)" -like "\*")
    {
            $Path = "$($Row.value)"
            $Path
            set-location $Path
            dir
    }
    ELSE {$Path = ""}
}

不确定我完全遵循您的问题;但请尝试一下:

$ds = $DataSet.Tables[0]
$ds | Format-Table -Autosize
...
foreach ($row in $ds.Rows) {
    if ($row.setting -eq "ArchiveDir" -and $row.value -like "\*") {
        $path = $row.value
        Write-Host $path
        Set-Location $path
    }
}

如果您遇到相同的错误,请尝试:

$path = $row.value.ToString()
Set-Location $Path

最新更新