Notepad ++ adiciona valor numérico a cada script repetido

0

Eu tenho um arquivo txt com dígitos apenas em cada linha,

1234  
2345  
3456  
4567  

Eu gostaria de colocar cada linha em valores no powershell, mas mais de 1000 vezes.

$id = "1234"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)

$id = "2345"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)

$id = "3456"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)

Alguém pode me dizer como posso conseguir isso usando o Notepad ++ ou qualquer outra coisa? obrigada,

    
por Jay Yoo 01.11.2017 / 19:54

3 respostas

0

Se eu entendi corretamente, você deseja percorrer cada número no seu arquivo de origem e executar a mesma ação. Use o cmdlet ForEach-Object .

gc "C:\foo.txt" | % {

    $id = $_
    $w = Get-SPWeb $urlWeb
    $l = $w.Lists[$listName]
    $i = $l.GetItemById($id)

}

Como alternativa, você pode gravar uma macro no Notepad ++ para formatar seu arquivo.

    
por 01.11.2017 / 20:12
1
  • Ctrl + H
  • Encontre o que: \d+
  • Substituir por: $id = "$0"\n$w = Get-SPWeb $urlWeb\n$l = $w.Lists[$listName]\n$i = $l.GetItemById\($id\)\n
  • check Embrulhe
  • verificar expressão regular
  • Substituir todos

Explicação:

\d+     : 1 or more digits

Substituição:

$0  means whole match, ie. the number

$id = "$0"  : first line
\n          : line break, you could use \r\n
$w = Get-SPWeb $urlWeb  : second line
\n          : line break, you could use \r\n
$l = $w.Lists[$listName]    : third line
\n          : line break, you could use \r\n
$i = $l.GetItemById\($id\)  : fourth line, parenthesis have to be escaped in Npp
\n          : line break, you could use \r\n

Resultado para o exemplo dado:

$id = "1234"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)

$id = "2345"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)

$id = "3456"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)

$id = "4567"
$w = Get-SPWeb $urlWeb
$l = $w.Lists[$listName]
$i = $l.GetItemById($id)
    
por 01.11.2017 / 20:38
0

Se não houver nada além dos números no arquivo, você poderá encontrar e substituir usando os caracteres de fim de linha e substituí-los por tudo que precisar adicionar. Assim:

Encontrar

\r\n

Substituir

"\r\n$w = Get-SPWeb $urlWeb\r\n$l = $w.Lists[$listName]\r\n$i = $l.GetItemById($id)\r\n\r\n$id = "

Isso precisará de uma pequena limpeza manual no primeiro e último números, mas, do contrário, é apenas uma única etapa Substituir tudo. Verifique se você definiu o modo de pesquisa Localizar e substituir como Estendido .

    
por 01.11.2017 / 20:08