0

フォルダーを作成し、配列に基づいて共有を作成する powershell スクリプトがあります。したがって、配列は次のようになります $folders = ("C:\test1", "C:\test2")

ループを実行しforeachて、フォルダーを問題なく作成します。

これが問題です。最初の 3 文字を取り除くことを除いforeachて、同じ配列を使用して別のループを作成したい(単純に になります)。共有を作成するためにこれを行っています(これは、ドライブのないフォルダーの名前です)。$foldersC:\test1test1

最初の 3 文字を削除して、新しいループに渡すにはどうすればよいでしょうか? どうもありがとう!!!

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 に答える
0

それを行うには、少なくとも 3 つの方法を考えることができます。お気に入りを選んでください;)

# 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 に答える