Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String PowerShell从字符串中提取字符_String_Powershell_Extract - Fatal编程技术网

String PowerShell从字符串中提取字符

String PowerShell从字符串中提取字符,string,powershell,extract,String,Powershell,Extract,我在.csv文件中有一个用户名列表。看起来像这样 PC,User comp-1,john.doe PC-2,steven.smith MAC-1,betty.crocker 我想提取名字和姓氏的第一个字母,放入另一个变量中。我不知道如何做到这一点。这是我的密码,它会给我第一个字母 $PepCSV = import-csv C:\pep.csv foreach($X in $PepCSV) { $UserName = $X.User $UserInt = $UserNam

我在.csv文件中有一个用户名列表。看起来像这样

PC,User
comp-1,john.doe
PC-2,steven.smith
MAC-1,betty.crocker
我想提取名字和姓氏的第一个字母,放入另一个变量中。我不知道如何做到这一点。这是我的密码,它会给我第一个字母

 $PepCSV = import-csv C:\pep.csv 
 foreach($X in $PepCSV)
   {
   $UserName = $X.User
   $UserInt = $UserName.Substring(0,1)
   Write-Output "UserName = $UserName `n UserInt = $UserInt"
   } 
输出是这样的

UserName = john.doe 
 UserInt = j
UserName = steven.smith 
 UserInt = s
UserName = betty.crocker 
 UserInt = b

如何获取UserInt的第二个字母

您可以通过此代码获取姓氏的第一个字母:

 $PepCSV = import-csv C:\pep.csv 
 foreach($X in $PepCSV)
 {
 $UserName = $X.User
 $UserInt = $UserName.Substring(0,1) + ($Username -split '\.')[1].substring(0,1)
 Write-Output "UserName = $UserName `n UserInt = $UserInt"
 } 

使用
-将
替换为除首字母和管道外的所有内容都直接剥离的标签:

导入csv C:\pep.csv |%{
'UserName='+$\.User
'UserInt='+($\.User-replace'()..*?\().*','$1$2')
}

这里要做的是:将字符串John.Doe按点拆分,取其第二部分,然后再次执行substring方法。所有这些都可以用
+