2014-10-02 149 views
0

目前我正在试图建立一个简单的脚本,将来自一个文件名报到字符串报告特定字符串PowerShell脚本 - 从文件名

我有一个目录全名为文件如下:

C:\[20141002134259308][302de103-6dc8-4e29-b303-5fdbd39c60c3][U0447744][10.208.15.40_54343][ABC_01].txt 
C:\[20141002134239815][302de103-6dc8-4e29-b303-5fdbd39c60c3][U0011042][10.168.40.34_57350][ABC_01].txt 
C:\[20141002134206386][302de103-6dc8-4e29-b303-5fdbd39c60c3][u1603381][10.132.171.132_54385][ABC_01].txt 
C:\[2014100212260259][302de103-6dc8-4e29-b303-5fdbd39c60c3][U0010217][10.173.0.132_49921][ABC_01].txt 

因此,我想从每个文件名中提取以字母U和7位数字开头的用户标识,然后创建一个新的txt或csv并列出所有这些标识。而已。

+1

欢迎使用?你尝试了什么? – 2014-10-02 19:44:22

回答

1

正如Patrice指出的那样,您应该自己尝试并自己动手,然后找到您尝试过的相关代码和您遇到的错误。这就是说,我很无聊,这很容易。我会使用一个正则表达式匹配对文件的名称,然后为每一个匹配我倒是输出的拍摄字符串:

Get-ChildItem 'C:\Path\To\Files\*.txt' | Where{$_.Name -match "\[(U\d{7})\]"} | ForEach{$Matches[1]} 

,将返回:

U0447744 
U0011042 
u1603381 
U0010217 

如果你想将其输出到文件,只需将其输出到Out-File,然后指定要保存的文件的完整路径和名称。

+0

我明白了,我非常感谢你!我实际上已经对它进行了整理(其中包括一些来自你的旧帖子TheMadTechnician)这就是我想到的: GCI $ path | ?{$ _。BaseName -match“0c3 \] \ [(。*?)\]”} | %{$ _ CopyTo从( “$($ _目录)\ $($比赛[1])。”)。} | Export-Csv“C:\ IAM \ test \ list.csv” 喜欢export-csv及其结果,现在我只是尝试过滤并获取我需要的内容。 – beatlebum 2014-10-02 21:13:04