gpt4 book ai didi

windows - 使用 -replace 从 csv 中的单元格中删除带有特殊字符的字符串

转载 作者:可可西里 更新时间:2023-11-01 09:47:19 26 4
gpt4 key购买 nike

我有一个 CSV 文件,例如:

"localpath"
"C:\Users\calabresel"
"C:\Users\goslinep"
"C:\Users\deangelisr"
"C:\Users\bannont"
"C:\Users\goodwind"

我正在寻找一种方法来将用户名与每个字段隔离开来。然后我将查询 AD 以确定每个用户是禁用还是启用。不过,我一直无法弄清楚如何获得最后一 block 。我的想法是使用 -replace 将相同的字符串替换为 null,如下所示:

$txt = import-csv paths1.csv | % {$_.localpath = $_.localpath -replace "C:\Users\", ""}

这返回了无效的正则表达式模式错误,但我认为这是目标字符串包含特殊字符(反斜杠)的结果。然后我开始寻找一种方法让 powershell 从字面上取而代之。这让我尝试这样做:

$txt = import-csv paths1.csv | % {$_.localpath = $_.localpath -replace [Regex]::Escape("C:\\Users\\"), ""}

还有这个

$txt = import-csv paths1.csv | % {$_.localpath = $_.localpath -replace "C:\\Users\\", ""}

这两种方法都可以阻止无效的正则表达式错误,并且不会提示地返回一个新行。然而,当我打印 $txt 变量时,它是空的...

我确定我是从错误的角度和/或使用不正确的语法来解决这个问题,但我可以使用一些指导,因为我一周前才开始使用 powershell。

如有任何帮助,我们将不胜感激。

最佳答案

下面将导入CSV文件,然后获取路径的叶子。即用户名。

$txt = Import-Csv paths1.csv | ForEach-Object { Split-Path $_.localpath -leaf }

如果您仍然想使用您的替换方法,只需取出 $_.localpath = 部分,它应该可以工作。

$txt = Import-Csv C:\@@Scatch\test.csv | % { $_.localpath -replace "C:\\Users\\", ""}

关于windows - 使用 -replace 从 csv 中的单元格中删除带有特殊字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com