我有一个powershell脚本,可以创建文件夹并根据数组创建共享。所以数组就像$folders = ("C:\test1", "C:\test2")
我执行foreach
循环并使文件夹正常。
这是问题所在。我想使用相同的foreach
数组创建另一个$folders
循环,除了删除前三个字符(因此C:\test1
只是变成test1
)。我这样做是为了创建共享(这只是没有驱动器的文件夹的名称)。
如何删除前三个字符并将其传递给我的新循环?非常感谢!!!
答案 0 :(得分:2)
$newFolders = $folders | % { $_.substring(3) }
会将$ newFolders设置为您正在寻找的数组。
您也可以使用$folders | % { $_.substring(3) } | % { sharing_code }
等内容进行内联。
也就是说,更强大的版本就像$newFolders = $folders | % { split-path -leaf $_ }
。
答案 1 :(得分:2)
一个简短的解决方案:)
$ folders -replace'^ ...'
答案 2 :(得分:0)
我至少可以想到三种方法。选择你最喜欢的;)
# The most basic
$folders | %{$_.trimstart("c:\")}
# This one works with all drive letters
$folders | %{$_ -replace "\w:\\"}
# That last will only return the final file/folder in your path
# If you use a path such as "c:\something\else" then it'll return "else"
$folders | %{split-path $_ -leaf}
HTH!