带有变量的 PowerShell Foreach 循环供用户帐户复制文件

PowerShell Foreach Loop with Variable for User Accounts to Copy File

我正在尝试使用 foreach 循环和包含所有用户名的变量将文件复制到网络共享上的用户文件夹列表。到目前为止,这是我所做的,但没有成功。我明白 为什么 它不起作用(在变量中一次加载所有用户名),但我不确定如何纠正它,或者如果 foreach 循环是最好的途径拿。我已经尝试了下面的很多变体并进行了大量的谷歌搜索。

$whusers = "username1", "username2", "username3"

Foreach ($user in $whusers) {
xcopy "C:\users\myname\desktop\shortcut.url" "F:\corp users$whusers\desktop" }

如有任何帮助,我们将不胜感激!

使用 ForEach 循环时,您将遍历第二个变量的所有元素并将它们依次放入第一个变量中。在 ForEach 内部,您必须引用 first 变量,而不是第二个。将 ForEach 中的 $whusers 更改为 $user$.

试试这个:

$whusers = "username1","username2","username3"

Foreach ($user in $whusers) {
    xcopy "C:\users\myname\desktop\shortcut.url" "F:\corp users$user\desktop"
}

即使这也可以在不使用 $user 变量的情况下完成。 ForEach 用于遍历数组。 如果要迭代的对象通过管道作为输入,则有一个特殊变量 $_ 每次都充当数组的元素。

$whusers = "username1", "username2", "username3"

$whusers | ForEach {
xcopy "C:\users\myname\desktop\shortcut.url" "F:\corp users$_\desktop" 
}