【发布时间】:2021-12-19 17:44:33
【问题描述】:
好吧,我只想知道如果读出的内容(包括 Verkaufsabteilungsleiter 或 Gesamtleitung 中的“leiter”之类的词,并保存在变量中,例如 MitgliedÄndern2、$Mitgliedlesen2、$MitgliedÄndern3、$Mitgliedlesen3 过滤掉了这个东西不会生成。
或者它会找到像 Verkaufsabteilung-Inland 这样的东西,然后在 String 中添加一些东西。 所以我认为比较两个数组会更短如果我逐行编写。
if ($Abt -match "leiter") {$Standortsleitunglesen2 = $Mtl2 + "s" + "leitung" + "-" + "Lesen"}
if ($Abt -match "leiter") {$Standortsleitunglesen2 = $Mtl2 + "s" + "leitung" + "-" + "Lesen"}
if ($Standortsleitunglesen2 -match "Geschäft" ) {$Standortsleitunglesen2 = "" }
所以我可以在 array2 中设置术语,我不需要写很多行并手动输入。我希望你现在明白了。
所以我认为我的解决方案朝着以下方向发展:
$array = @($MitgliedÄndern2, $Mitgliedlesen2 , $MitgliedÄndern3 , $Mitgliedlesen3)
$array2 = "leiter" , "leitung"
for([int] $i = 0; $i -le ($array.Count -1); $i++)
{
foreach($word in $array2)
{
if($array[$i] -like "*$word*")
{
if ($array[$i] -match $MitgliedÄndern2) { ($MitgliedÄndern2 = "") }
if ($array[$i] -match $Mitgliedlesen2) { ($Mitgliedlesen2 = "") }
if ($array[$i] -match $MitgliedÄndern3) { ($MitgliedÄndern3 = "") }
if ($array[$i] -match $Mitgliedlesen3) { $Mitgliedlesen3 = ""}
$array[$i] = ""
}
}
}
我有一个问题,变量会生成 CSV 表的用户名。 CSV:吸入
Nummer;Ordner1;Ordner2;Ordner3;Benutzername;;;Beschreibung;Mitglied;Mitglied 2;Gruppenbeschreibung;Gruppenbeschreibung 2
1;Hamburg;Geschäftsleitung;HH-GL;Stefan Berti;;;Standortleiter;GG-H-Geschäftsleiter;;Geschäftsleitung Hamburg;
在array2中我想循环必须在array1中搜索的单词。
如果他在 $MitgliedÄndern2、$Mitgliedlesen2、$MitgliedÄndern3 中找到 array2 的字符串,例如 'leiter' 或其他单词,如“Sekretär”,它将是 Write "" in $MitgliedÄndern2, $Mitgliedlesen2, $MitgliedÄndern3 .
我有一个适用于简单数组的方法,但该方法在该示例中不起作用。
我是 Powershell 的新手,但我发现了很多东西。我不知道。
$File=Import-Csv '.\Datenbank\Hamburg.csv' -Delimiter ";" -Encoding UTF8 | foreach-object {
$Mtl1 = ""
$Mtl2 = ""
$Mtl3 = ""
$Org1 = ""
$Org2 = ""
$Org3 = ""
$Nummer = $_.Nummer
$User = ""
$Ordner1 = $_.Ordner1
$Ordner2 = $_.Ordner2
$Ordner3 = $_.Ordner3
$Beschreibung = $_.Gruppenbeschreibung
$Beschreibung2 = $_.Gruppenbeschreibung2
if ($Ordner1 -ne '') {$Org1 = echo HH}
if ($Ordner2 -ne '') {$Org2 = $($_.'Ordner2')}
if ($Ordner3 -ne '') {$Org3 = $($_.'Ordner3')}
$Mtl1 = "$Org1"
$Mtl2 = "$Org1" + "-" + "$Org2"
$Mtl3 = "$Org1" + "-" + "$Org2" + "-" + "$Org3"
#Lesen
$Mitgliedlesen3 = ""
$Mitgliedlesen2 = ""
$MitgliedÄndern3 = ""
$MitgliedÄndern2 = ""
$Bes = $_.Beschreibung
if ($Org3 -ne '') {$Mitgliedlesen3 = $Mtl3 + "-"+ "Lesen"}
if ($Org2 -ne '') {$Mitgliedlesen2 = $Mtl2 + "-" + "Lesen"}
$MitgliedÄndern2 = "Abteilungsleiter"
$Mitgliedlesen2 = "Bundesleiter"
$MitgliedÄndern3 = "Mitarbeiter"
$Mitgliedlesen3 = "Mitarbeiterleiter"
$array = $MitgliedÄndern2, $Mitgliedlesen2 , $MitgliedÄndern3
$array2 = "leiter" , ""
已经测试了跟随的东西。
#$array3 = (Compare-Object $array2 $array).InputObject
#$Array4 = $Array | where {$_ -match "leiter"}
$result = $array | Where {$array -notContains "leiter"}
#$result = $array1 | ?{$_.Split('=')[0] -in ($array2 | %{$_.Split('=')[0]})}
#$result = compare $Array $Array2 -Property Key -IncludeEqual -ExcludeDifferent -,
Passthru $result
#$Array -like "*$array2*"
#$Array4
#$array3[0..1]
#ForEach ($array in $array2){
#$array -replace "^[$i0 .. $i]$array2",""
#}
.. }
感谢您的帮助。
【问题讨论】:
-
如果您可以包含您拥有的 csv 数据的示例以及您想要的数据,那将会很有帮助。我还不清楚你想要什么,你的哪些注释掉的代码是相关的。
-
好的,然后我编辑我的问题;)并添加那个东西。 $MitgliedÄndern 是 csv File 不同部分组合的结果。它是由生成的
-
@marsze 已对其进行编辑并添加更多信息
-
关于stackflow的一个问题。如果我为自己的问题写了答案,为什么 Stackflow 会通知我?那会发生什么?我不能在重新回答新答案后吗?那么事情是跟随我有数据库,我必须创建用户。所以我有不同的公司部门,如销售和仓储、管理等,我需要不同的组,例如销售-写作、销售-阅读活动目录中的文件夹。我必须创建文件夹,我必须创建组,在组和文件夹中设置属性并将用户添加到组。
-
for([int] $i = 0; $i -le ($array.Count -1); $i++) { foreach($array2 中的$word) { if($array[$ i] -like "$word") { if ($array[$i] -match $MitgliedÄndern2) { ($MitgliedÄndern2 = "") } if ($array[$i] -match $ Mitgliedlesen2) { ($Mitgliedlesen2 = "") } if ($array[$i] -match $MitgliedÄndern3) { ($MitgliedÄndern3 = "") } if ($array[$i] -match $Mitgliedlesen3) { $Mitgliedlesen3 = ""} $array[$i] = "" } } } 就像如果它在 array2 中检测到一个单词,它应该在变量中更改它。
标签: arrays powershell variables replace compare