我仍然是一个powershell新手,但感谢你,我正在学习...:-)
我有一个简单的文本文件,假设它的名字是“text.txt”。在这个文本文件中有一些单词(bla bla),后面跟着一个UNC路径,看起来有点像这样:
blah blah jaada jaada \\domain.ad.corp\data\dir1\dir1a\dir1ab\filename.txt blah blah jaada jaada
从这个简单的示例文本文件中,我想将UNC-Filename读取到一个变量中,假设变量的名称是$unc_content。
当powershell被要求给予变量$unc_content的内容时,答案应该是这样的:
$unc_content
\\domain.ad.corp\data\dir1\dir1a\dir1ab\filename.txt
如何才能做到这一点?许多许多thx为您的有益提示。
1条答案
按热度按时间blmhpbnm1#
这段代码首先使用Get-Content读取“zxc.txt”的内容。然后定义一个匹配UNC路径的正则表达式,这似乎是您要查找的。最后,它使用Select-String查找正则表达式的所有匹配项,并使用. Matches. Value获取结果匹配项的值。
如果文件中只有一个UNC路径,则$unc_content将以字符串形式包含该路径。如果有多个UNC路径,则$unc_content将包含字符串数组。
请注意,如果文件不包含任何与所提供的正则表达式匹配的UNC路径,则$unc_content将为空或null。
或者
Get-Content命令用于读取“text.txt”文本文件的内容。
Select-String被应用到获取的内容中,以查找所有与给定模式匹配的子字符串。在本例中,我们要查找的字符串以两个反斜杠(\)开头,后跟任意数量的字母、数字和其他域字符,然后是目录和文件名(也可能存在其他字符,但不是特殊的路径分隔符)。
$unc_content.Matches.Value.Trim()选择使用该模式找到的值,从它们构建对象集合,然后只选择每个对象的值,同时删除任何前导或尾随空格。
结果值保存在$unc_content变量中,您可以在此后的代码中使用此变量。调用$unc_content将返回找到的UNC路径(\domain.ad.corp\data\dir1\dir1a\dir1ab\filename.txt),不包含任何额外的空格或其他字符。