使用PowerShell将文本附加到文本文件中的某些值

使用PowerShell将文本附加到文本文件中的某些值,powershell,Powershell,我有一个CSV文本文件,用分隔格式如下: USER_EMPLOYEE_ID;SYSTEM1;USERNAME1 第一列是一个标识,以下两列是用户在不同活动目录上的帐户。我已经放置了垃圾数据,但想法就在那里 ay7suve0001;ADDPWN;ay7suve0001 AAXMR3E0001;ADDPWN;AAXMR3E0001 ABABIL;ADDPWN;ABABIL ABDF17;ADDPWN;ABDF17; ABKMPPE0001;ADDPWN;ABKMPPE0001 ABL1FL;ADD

我有一个CSV文本文件,用
分隔格式如下:

USER_EMPLOYEE_ID;SYSTEM1;USERNAME1
第一列是一个标识,以下两列是用户在不同活动目录上的帐户。我已经放置了垃圾数据,但想法就在那里

ay7suve0001;ADDPWN;ay7suve0001
AAXMR3E0001;ADDPWN;AAXMR3E0001
ABABIL;ADDPWN;ABABIL
ABDF17;ADDPWN;ABDF17;
ABKMPPE0001;ADDPWN;ABKMPPE0001
ABL1FL;ADDPWN;ABL1FL
AB6JG8E0004;ADDPWN;AB6JG8E0004;
ACB4YB;ADDPWN;ACB4YB
ACK7J9;ADDPWN;ACK7J9
ACLZFS;ADDPWN;ACLZFS;
ACQXZ3;ADDPWN;ACQXZ3
现在有一个要求,我必须向所有
USERNAME1
值追加一个固定字符串,如
@ADDPWN.com
。一些记录有一个
和一些没有

有没有一种快速的方法可以将
@ADDPWN.com
附加到每一行,以处理:

  • 任何
  • 任何已
    @ADDPWN.com

从PowerShell?导入Csv是您的朋友。下面的内容应该会让你走上正确的轨道

Import-Csv "import.csv" -Delimiter ';' | 
foreach { 
    if ($_.username1 -notlike '*@ADDPWN.com') { $_.username1 += '@ADDPWN.com' }
    $_ 
} |
Export-Csv "export.csv" -Delimiter ';'
这假定csv文件的第一行是标题行。如果不是,您可以将
-标题“USER\u EMPLOYEE\u ID”、“SYSTEM1”、“USERNAME1”
作为导入Csv的另一个参数传递

导出Csv会在参数周围添加一些额外的内容,比如引号,所以如果您不想这样做,您可能需要使用输出格式


要了解这是如何工作的另一个解释,请查看这是一个对我有效的解决方案

#opens list of file names
$file2 ="F:\OneDrive_Biz\PowerApps\SecurityCameraVideoApp\file_list_names.csv"
$x = Get-Content $file2
#appends URl to beginning of file name list
for($i=0; $i -lt $x.Count; $i++){

    $x[$i] = "https://analytics-my.sharepoint.com/personal/gpowell_analytics_onmicrosoft_com/Documents/PowerApps/SecurityCameraVideoApp/Video_Files/" + $x[$i] 
}
$x

#remove all files in target directory prior to saving new list
get-childitem -path C:\_TEMP\file_list_names.csv | remove-item

Add-Content -Path C:\_TEMP\file_list_names_url.csv -Value $x

你试过什么?签出
Import CSV
以读取CSV,签出
-replace
replace()
以修改字符串。嗯,它可以工作。然而,用户识别;系统1;用户名1;30;窗户;万纳·西格弗里德;63;窗户;奥特·鲁道夫;68;窗户;瓦代拉·阿里贾;变成#TYPE System.Management.Automation.PSCustomObject“USER#IDEN”;“系统1”;用户名1“30”;“窗口”;“瓦纳。Siegfried@dev-参考“63”;“窗口”;“奥特。Rudolf@dev-参考“68”;“窗口”;“瓦尔德拉。Alicja@dev-参考de“