У меня есть текстовый файл с цифрами только в каждой строке,

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++ или что-нибудь? благодарю вас,

3 ответа3

1
  • Ctrl+H
  • Найти что: \d+
  • Замените на: $id = "$0"\n$w = Get-SPWeb $urlWeb\n$l = $w.Lists[$listName]\n$i = $l.GetItemById\($id\)\n
  • проверить обернуть
  • проверьте регулярное выражение
  • Заменить все

Объяснение:

\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)
0

Если в файле ничего нет, кроме цифр, вы можете найти и заменить, используя символы конца строки и заменяя их всем необходимым. Вот так:

найти

\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 = "

Для этого потребуется небольшая ручная очистка первого и последнего номеров, но в остальном это всего лишь один шаг Заменить все. Убедитесь, что для режима поиска и замены поиска установлено значение « Расширенный».

0

Если я правильно понимаю, вы хотите просмотреть все числа в исходном файле и выполнить то же действие. Используйте командлет ForEach-Object .

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

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

}

Кроме того, вы можете записать макрос в Notepad++ для форматирования вашего файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .