问题标签 [select-string]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1374 浏览

powershell - 如何使用 Powershell 远程选择多个服务器

想法是使用 Select-String 和 Invoke-Command 在多个服务器上搜索模式。

我无法将 $results 正确返回到本地服务器并将其打印在文件和/或控制台中(这不是那么重要)。

我需要的是能够看到搜索结果(文件名、行、匹配)

0 投票
2 回答
143 浏览

regex - 从文本文件中选择特定类型的单词并将其加载到变量中

我正在尝试使用 power shell 脚本来读取文件的内容并从中选择特定类型的单词。我需要将找到的单词加载为我打算在下游进一步使用的变量。

这是我的输入文件的样子:

我想选择的具体词是vol-xxxxxxxx. 我使用此链接编写脚本 如何在 powershell 的选择字符串中传递变量

这就是我的做法:



当我运行这个脚本时,它运行但没有给出任何响应。似乎以某种方式选择字符串的输出未加载到变量$newvolumeid中。

知道如何解决这个问题吗?或者我错过了什么?

PS:上面提到的帖子大约有3年的历史了,所以我重新发布了。

0 投票
2 回答
1982 浏览

powershell - 查找并替换同时包含双引号和方括号的字符串

假设我有一个名为 testfile.txt 的测试文件,其中包含以下行:

我想用 PowerShell 来表示,如果整个字符串存在,则在其下方直接放置一行值:

(请注意,它包括空格、括号和双引号。这很重要,因为我遇到的问题是我认为转义括号和双引号)。

所以结果是:

我认为最简单的方法是说,如果找到第一个字符串,则再次将其替换为第一个字符串本身,并且新字符串形成包含在同一命令中的新行。我很难将字符串排成一行,因此我尝试使用 herestring 变量,从而读取具有格式的整个文本块。它仍然不会将带有引号的完整字符串解析到管道中。我是 powershell 新手,所以如果你看到一些愚蠢的东西,请不要退缩。

以上只是每次都给出“未找到匹配项”。这是因为它没有找到文件中的第一个字符串。我尝试过使用反引号 [ ` ] 和双引号来尝试转义的变体,但我认为此处字符串中的要点是它应该解析包括所有格式的文本块,所以我不应该这样做。

如果我将文件更改为仅包含:

然后将此处的字符串相应地更改为:

然后它可以正常工作,我可以根据需要替换字符串。

0 投票
1 回答
4551 浏览

powershell - 使用 PowerShell Select-String 在文本文件的同一行中查找多个字符串

我试图在我们的源代码控制文件(1000 个)中找到所有 SQL Server 对象名称(大约 800 个)。当我尝试使用 Select-String 时,它会找到一个字符串,但随后它会停止处理它找到的行上的文件匹配。这是我得到的一个小样本。它也应该返回匹配 'was' 的内容。

0 投票
1 回答
83 浏览

performance - 需要更快地在 PowerShell 脚本中进行搜索

谁能帮助加快搜索速度?使用此代码,搜索需要几天时间。

Search_Names.csv(大约 10k 个名字)

Need_This_Long_Strings.csv(大约 180k 个字符串,它是 50MB)

0 投票
4 回答
37977 浏览

powershell - 从文件夹中的所有文本文件中提取与模式匹配的行到单个输出文件

我正在尝试提取文件夹中所有文件中以“%%”开头的每一行,然后将这些行复制到单独的文本文件中。目前在 PowerShell 代码中使用此代码,但我没有得到任何结果。

0 投票
2 回答
1001 浏览

powershell - Select-String -Context 并在数据中查找电子邮件地址

我有一个文本文件,其中该数据的变体(“SVC”之后的数字和之前的日期以及文本正文)将出现多次。我可以捕获数据字符串,但是一旦捕获,我需要在该数据中找到一个电子邮件地址。电子邮件可能出现在第 4 到第 9 行的任何上下文中。我似乎无法弄清楚如何隔离数据并将其设置为变量以便可以捕获它。

我的示例文件是这样的:

我尝试使用 捕获上下文中的电子邮件,$Email = Select-String $_. -pattern '(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b)'但不知道如何回调上下文以搜索电子邮件地址。我也很有可能做错了。有谁知道我如何捕获它并将其设置为变量?$Email = Select-String $_.WLDir -pattern '(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b)'$Email = Select-String $_.Context -pattern '(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b)'

0 投票
1 回答
91 浏览

powershell - Select-String 问题间歇性工作

我有一些代码有时有效,而另一些则无效。当它失败时我看不到任何错误,所以我不知道为什么它是间歇性的。

我正在使用 Select-String cmdlet,它将找到许多我想要的匹配项。

我也使用与我的测试相同的文本文件,所以它不会改变正在搜索的数据。

$Hospinput.Text是输入要搜索的项目。

搜索文件的内容是:

通过在搜索框中输入win,它将显示这个..任何带有“win”的东西。

..这行上面没有代码只有文本文件内容和搜索win后应该显示的内容。

上面的代码是表单的一部分。它将搜索文本文件并根据输入进行匹配。这很好用。但只是有时。要在表单中显示结果,我单击搜索按钮。当我点击搜索时,有时它会显示结果。有时它不会。而且每次测试时我都没有做任何不同的事情。

任何人都可以解释一下吗?

它间歇性地执行此操作

0 投票
0 回答
96 浏览

powershell - Select-String 在 winpe powershell 4 中不起作用,但在 win7 上正常

以下代码在运行 PS 4 的 winpe 中不起作用,但在 7...

如果我在win7中单击表单按钮,它会在文本框中显示文件的匹配内容。在 winpe 中,单击按钮时没有显示任何内容 - 但没有给出错误。

解决了

输入框未被识别,因为我在表单关闭时写入托管 $Hospinput 值,并且它始终在 winpe 中

System.Windows.Forms.TextBox,文本:

但是win7没有

我实际上已经解决了。就是这个。

我在代码中有另一个提交按钮,点击时效果很好 - 关闭表单等。

这个提交按钮调用如下:

搜索按钮正在调用一个变量,该变量具有这样的执行代码..

然后我有

winpe 不喜欢在点击时调用一个变量来执行——一旦我改变了这个——它就起作用了——所以完全删除了 $handler_find_click 变量。

0 投票
2 回答
630 浏览

powershell - Select-String - 模式不采用变量

我正在尝试使用一个变量,select-string -pattern但它什么也不返回。如果我将变量的内容复制并粘贴到语法中,它就可以工作。

我所拥有的是我之前记录的一些哈希值,并且想要再次获取同一目录的哈希值并查看它们是否与之前记录的相同,因此我尝试使用 select-string。

用于获取原始哈希:

验证阶段

期望的输出: