Você diz a saída de
$srv = "1.0"; if ($srv -match '^[0-9]{1,3}\.[0-9]{1,3}$') {"192.168.$srv"}
é 192.168.1.0
E se eu entendi corretamente, quando você usa
$srv = $args[0]; if ($srv -match '^[0-9]{1,3}\.[0-9]{1,3}$') {"192.168.$srv"}
E passe 1.0
como argumento, a saída é 192.168.1
A única maneira de isso ser possível é se o seu script estiver exibindo isso em algum outro lugar . Como não pode ser proveniente desta declaração if
.
Você pode fazer as seguintes alterações no seu script e nos mostrar a saída:
$srv = $args[0];
"srv = $srv";
if ($srv -match '^[0-9]{1,3}\.[0-9]{1,3}$') {"Inside IF: 192.168.$srv"}
Obrigado