Я новичок в написании сценариев PowerShell. До сих пор я использовал обычную партию для своей цели, поскольку это требование моей компании. Внутри этого пакета я использую вложенные циклы для сравнения двух файлов .txt, подробнее я хочу сделать следующее:
- Файл 1 содержит много строк. Каждая строка находится в одной отдельной строке с предшествующим номером и точкой с запятой, например:
658;RMS
- Файл 2 - это длинный текст.
Цель состоит в том, чтобы подсчитать количество появлений каждой строки из файла 1 в файле 2, например, RMS подсчитывается 300 раз.
Поскольку мой предыдущий код имеет некоторые огромные недостатки, касающиеся время выполнения (файл 1 имеет примерно 400 строк, а файл 2 500.000) Я читал, что Select-String из Powershell намного эффективнее. Однако, поскольку я читаю некоторые руководства, мне непонятно, как я могу действовать здесь, кроме того, мне нужно запустить код PowerShell внутри моего .bat. Моя самая большая проблема в том, что я не уверен, как и где разместить свои «переменные», поэтому два входных файла 1 и 2
До сих пор я тестировал метод Select-String следующим образом:
powershell -command "& {Select-String -Path *.txt -Pattern "RMS"}"
Мое предположение заключалось в использовании трубопроводов, поэтому что-то вроде этого:
powershell -command "& {<<path to file one, should read line by line>> | Select-String -Path File2.txt -Pattern "value of file 1"}"
Однако я не могу заставить это работать. Powershell ожидает что-то вроде psobject
перед первым конвейером?