Слышал про язык давно, но все как-то руки не доходили. Вот вчера созрел, решил попробовать свои силы. Интернеты выдали кучу ссылок на книги и на ресурсы с уроками и статьями, с чего начать? Начну с простой задачи - коррекция введенной строки по правилам имен msdos и венды: строка не содержит *, ?, : и других.
И тут первая засада: $f = $f.replace($w.chars($i),'') не работает, ругается на пустую строку, хотя многие ресурсы утверждают, что так и должно быть. Решение 1 - указать строку замены '_', но тогда получится не та строка, что нужна. Чтение доков и пробы с функциями вывели на код(оставлю на память):
$f='huj*,pizda?skoworoda:'
$f
$i=0
$c=''
while($i -lt $f.length)
{
#https://windowsnotes.ru/powershell-2/rabota-so-strokami-v-powershell/
#$f = $f.replace($w.chars($i),'\0')
$p=$w.indexof($f.chars($i))
if ($p -ge 0)
{
#$f.chars($p)
$i=$i+1
} else
{
$c=$c+$f.chars($i)
$i=$i+1
}
}
$c
$w =':<>?*|"\/'
$f='huj*,pizda?skoworoda:'
$f
#$i=0
$c=''
#while($i -lt $f.length)
for ($i=0;$i -lt $f.length;$i++)
{
#https://windowsnotes.ru/powershell-2/rabota-so-strokami-v-powershell/
#$f = $f.replace($w.chars($i),'\0')
$p=$w.indexof($f.chars($i))
if ($p -lt 0)
{
#$f.chars($p)
#$i=$i+1
#} else
#{
$c=$c+$f.chars($i)
# $i=$i+1
}
}
$c
$w =':<>?*|"\/'
$f='huj*,pizda?skoworoda:'
$f
$i=0
while($i -lt $f.length)
#for ($i=0;$i -lt $f.length;$i++)
{
#https://windowsnotes.ru/powershell-2/rabota-so-strokami-v-powershell/
#$f = $f.replace($w.chars($i),'\0')
$p=$w.indexof($f.chars($i))
if ($p -ge 0)
{
$f=$f.remove($i,1)
}
else
{
$i=$i+1
}
}
$f
Комментарии
Отправить комментарий