Я хочу удалить все сторонние драйверы из образа Windows с помощью DISM, но, похоже, он не принимает подстановочные знаки. Это означает, что мне придется удалить их все вручную, чего я хочу избежать. Пока что я создал список всех драйверов в табличном формате, как показано на рисунке ниже:

У меня есть два варианта, насколько я вижу:

  • Используйте подсистему bash в Windows 10
  • Используйте PowerShell.

Я забочусь только о части oem * .inf . Однако, помимо простой фильтрации только текста oem * .inf, я бы хотел изменить его следующим образом:

/Driver:oem100.inf /Driver:oem101.inf /Driver:oem102.inf /Driver:oem103.inf

и т.д., в строке, а не в формате списка.

Я думал, что смогу сделать это с помощью grep, но мои навыки в Linux не так хороши, как хотелось бы. Использование PowerShell кажется многообещающим, но я еще недостаточно продвинут. Как мне этого добиться?

1 ответ1

1

Вот решение PowerShell:

$File = "Drivers.txt"
$RegEx = '^oem\d{1,3}.inf'
$Drivers = Select-string $File -Pattern $regex|%{[string]$_.Matches}
$ofs = " /Driver:"
$String="/Driver:"+"$Drivers"
$String | Out-File DriverString.txt

Небольшой тестовый файл дал такой результат:

/Driver:oem100.inf /Driver:oem101.inf /Driver:oem102.inf /Driver:oem103.inf /Driver:oem104.inf /Driver:oem105.inf /Driver:oem106.inf /Driver:oem107.inf /Driver:oem108.inf /Driver:oem109.inf

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