Запрос текстового файла для конкретной строки
Я не уверен, с чего начать, поэтому заранее извиняюсь, если это кажется запутанным.
Я хотел бы запросить содержимое файла.DAT (формат.txt) для конкретной текстовой строки. В идеале он должен возвращать уровень ошибки, чтобы я мог определить команду последующего выполнения, если это необходимо. Я не уверен, что такое возможно?
Я приведу сценарий для большего контекста. Мне необходимо обновить параметры подключения для клиентов Juniper VPN на устройствах конечных пользователей. Я только хочу обновить клиентов, которые не имеют определенной текстовой строки в файле подключения (файл.DAT). Поэтому я хотел бы собрать скрипт, который сначала запрашивает файл подключения, а затем запускает команду на основе ответа на запрос.
Судя по исследованиям, которые я уже провел, подобные вещи возможны только в SQL. Я подумал о том, чтобы пойти по пути сравнения одного файла с другим, но я думаю, что он слишком открыт для ложных негативов.
Любая помощь будет принята с благодарностью.
Обновить
Мне удалось использовать PowerShell для запроса файла:
get-content -path 'C:\Program Files\Common Files\Juniper Networks\ConnectionStore\connstore.bak' | where-object {$_ -like '*DR Connection*'}
friendly-name: "DR Connection"
1 ответ
Я думал, что опубликую свой последний сценарий, который решил мою проблему на тот случай, если кто-то еще сталкивался с этой проблемой.
#File to search for along with what word to search for
$File = Get-Content "C:\Program Files\Common Files\Juniper Networks\ConnectionStore\connstore.bak" | Where-Object { $_.Contains("remotedr") }
#read-host -Prompt "Proceed?"
#write-host "Contents of var: $file"
#If the $file variable is NULL, then run the .BAT file
If($file -eq $null) {
write-host "Launching BAT file..."
Start-Process -FilePath 'JuniperConfig.cmd' -Wait
#.BAT file will run until it finishes, then the script will continue
}
#Otherwise, do nothing
Else {
write-host "Do nothing"
}
#write-host
#read-host "Pausing. Press ENTER to continue."
Спасибо