0

我有一个 powershell 脚本,它可以创建文件夹并基于数组进行共享。所以数组就像 $folders = ("C:\test1", "C:\test2")

我做了一个foreach循环,使文件夹就好了。

这就是问题所在。我想foreach使用相同的数组创建另一个循环,$folders除了去掉前三个字符(所以C:\test1简单地变成test1)。我这样做是为了创建共享(这只是没有驱动器内容的文件夹的名称)。

我将如何剥离前三个字符并将其传递给我的新循环?非常感谢!!!

4

3 回答 3

2

$newFolders = $folders | % { $_.substring(3) }将 $newFolders 设置为您要查找的数组。

您也可以使用类似$folders | % { $_.substring(3) } | % { sharing_code }.

也就是说,更强大的版本将类似于$newFolders = $folders | % { split-path -leaf $_ }.

于 2013-03-01T17:55:34.757 回答
2

一个简短的解决方案:)

$文件夹 - 替换 '^...'

于 2013-03-01T20:59:32.550 回答
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}

于 2013-03-01T18:02:54.717 回答