Это условно выполняет горячую клавишу на основе переменной:
#If ChatBox = 0
1::z
#If
Это условно выполняет горячую клавишу на основе переменной и окна:
[ 111]
Оценка строки PowerShell вызывает ToString () для DataSet. Чтобы оценить какие-либо свойства (или вызовы методов), вы должны принудительно выполнить оценку, заключив выражение в $ ()
for($i=0;$i -lt $ds.Tables[1].Rows.Count;$i++)
{
write-host "value is : $i $($ds.Tables[1].Rows[$i][0])"
}
. Дополнительно foreach
позволяет выполнять итерацию по коллекции или массиву без необходимости чтобы вычислить длину.
Переписано (и отредактировано для компиляции) -
foreach ($Row in $ds.Tables[1].Rows)
{
write-host "value is : $($Row[0])"
}
Here's a practical example (build a dataset from your current location):
$ds = new-object System.Data.DataSet
$ds.Tables.Add("tblTest")
[void]$ds.Tables["tblTest"].Columns.Add("Name",[string])
[void]$ds.Tables["tblTest"].Columns.Add("Path",[string])
dir | foreach {
$dr = $ds.Tables["tblTest"].NewRow()
$dr["Name"] = $_.name
$dr["Path"] = $_.fullname
$ds.Tables["tblTest"].Rows.Add($dr)
}
$ds.Tables["tblTest"]
$ds.Tables["tblTest"]
is an object that you can manipulate just like any other Powershell object:
$ds.Tables["tblTest"] | foreach {
write-host 'Name value is : $_.name
write-host 'Path value is : $_.path
}
У парсера возникли проблемы с конкатенацией вашей строки. Попробуйте это:
write-host 'value is : '$i' '$($ds.Tables[1].Rows[$i][0])
Редактировать: Использование двойных кавычек также может быть более понятным, поскольку вы можете включить выражения в строку в кавычках:
write-host "value is : $i $($ds.Tables[1].Rows[$i][0])"