首页 > 解决方案 > 如何从 Powershell 中的文件名列表中删除索引指定的空格

问题描述

我对 powershell 很陌生,我找不到任何关于如何处理以下问题的文档。我只是不知道如何简洁地表达我的问题以在谷歌上产生任何极其相关的结果。

假设我有一个目录中的文件列表:

$stuff = "file name1 1.csv", "file name2 78.csv", "file name3 14.csv"

"file name1 1.csv"
"file name2 78.csv"
"file name3 14.csv"

我想删除单词文件后的第一个空格和单词名称后的第二个空格,同时也忽略 .csv 指定,给我留下:

   "filename1"
   "filename2"
   "filename3"

我只想循环遍历这些文件名的列表。我想对此进行编码,以便可以将其推广到任何文件名组。有没有人有任何好主意,或者任何人都可以指出我正确的方向/文档?

提前致谢。

标签: powershell

解决方案


这是完成工作的另一种方法。[咧嘴笑]

它能做什么 ...


  • 如果您正在处理实际的文件对象,则创建一个要使用的字符串数组,您可能需要使用这些对象的.Nameor.BaseName属性。
  • 将该数组放入$InStuff集合中
  • 遍历该集合
  • 在空间上分裂
  • 仅从该拆分中获取第一个和第二个项目
  • 不带分隔符加入上述项目
  • 将它们发送到$OutStuff集合
  • 在屏幕上显示

编码 ...

#region >>> create an array of strings to work with
#    in real life, replace this block with your source instead
$InStuff = @'
file name1 1.csv
file name2 78.csv
file name3 14.csv
'@ -split [System.Environment]::NewLine
#endregion >>> create an array of strings to work with

$OutStuff = foreach ($IS_Item in $InStuff)
    {
    # take only the 1st two items
    #    join them with no delimiter
    -join $IS_Item.Split(' ')[0,1]
    }

$OutStuff

输出 ...

filename1
filename2
filename3

推荐阅读