You can only 'find' in print command using query words.
https://wiki.mikrotik.com/wiki/Manual:API#Queries
Alternative is to fetch (print) with criteria and move using acquired ID.
Working (tested) example:
mikrotik.Send("/ip/firewall/filter/print");
mikrotik.Send("=.proplist=.id");
mikrotik.Send("?comment=KURAL_1", true);
string id = null;
foreach (var h in mikrotik.Read())
{
var startIndex = h.IndexOf(".id=") + 4;
if (startIndex >= 4)
{
id = h.Substring(startIndex);
}
}
if (!string.IsNullOrEmpty(id))
{
mikrotik.Send("/ip/firewall/filter/move");
mikrotik.Send("=.id=" + id);
mikrotik.Send("=destination=35", true);
}
If multiple lines match, the last one will be moved. Do not add a break; to interrupt the loop in this case. If it is undesirable, create a list of ids and process the first/last/middle accordingly.