查询特定字符串的文本文件
Query textfile for specific string
我不知道从哪里开始,所以如果看起来很困惑,请提前致歉。
我想查询 .DAT 文件(.txt 格式)的内容以获取特定的文本字符串。理想情况下,它需要 return 一个错误级别,这样我就可以在需要时确定后续命令。我不确定这种事情是否可能?
我会给出更多上下文的场景。我需要更新最终用户设备上 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"
我想我会 post 我的最终脚本解决了我的问题,以防其他人遇到这个问题。
#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."
谢谢
我不知道从哪里开始,所以如果看起来很困惑,请提前致歉。
我想查询 .DAT 文件(.txt 格式)的内容以获取特定的文本字符串。理想情况下,它需要 return 一个错误级别,这样我就可以在需要时确定后续命令。我不确定这种事情是否可能?
我会给出更多上下文的场景。我需要更新最终用户设备上 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"
我想我会 post 我的最终脚本解决了我的问题,以防其他人遇到这个问题。
#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."
谢谢