Notepad++ 为每个重复的脚本添加数值

Notepad++ 为每个重复的脚本添加数值

我有一个 txt 文件,每行只有数字,

1234  
2345  
3456  
4567  

我想将这一行放入 powershell 中的值中,但超过 1000 次。

$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)

有人能告诉我如何使用 Notepad++ 或其他工具来实现这一点吗?谢谢,

答案1

如果我理解正确的话,您需要循环遍历源文件中的每个数字并执行相同的操作。使用 cmdlet ForEach-Object

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

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

}

或者,您可以在 Notepad++ 中录制宏来格式化您的文件。

答案2

  • Ctrl+H
  • 找什么:\d+
  • 用。。。来代替:$id = "$0"\n$w = Get-SPWeb $urlWeb\n$l = $w.Lists[$listName]\n$i = $l.GetItemById\($id\)\n
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

\d+     : 1 or more digits

替代品:

$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

给定示例的结果:

$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)

答案3

如果文件中只有数字,您可以使用行尾字符进行查找和替换,并将其替换为您需要添加的所有内容。如下所示:

寻找

\r\n

代替

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

这需要对第一个和最后一个数字进行一些手动清理,但除此之外,这只是一个替换全部步骤。确保将“查找和替换搜索模式”设置为扩展

相关内容