PowerShell使用for each循环更改字符串的两部分

PowerShell使用for each循环更改字符串的两部分,powershell,foreach,Powershell,Foreach,我有两个变量:$Computers和$Users 我想使用每个文件中包含的对象为每个文件创建一个路径 因此: 用户和计算机的数量是多少 输出应如下所示: \computername01\users\jblogs\appdata \computername02\users\mclogs\appdata \computername03\users\bfrogs\appdata \computername04\users\klogs\appdata 我曾尝试使用Foreach循环,但我只能更改字符串中

我有两个变量:
$Computers
$Users

我想使用每个文件中包含的对象为每个文件创建一个路径

因此:

用户和计算机的数量是多少

输出应如下所示:

\computername01\users\jblogs\appdata

\computername02\users\mclogs\appdata

\computername03\users\bfrogs\appdata

\computername04\users\klogs\appdata

我曾尝试使用
Foreach
循环,但我只能更改字符串中的计算机名或用户名,而不能同时更改两者

有什么建议吗

我尝试过嵌套方法,但这会为尽可能多的用户重复每台计算机的名称:

ForEach ($Computer in $computers)
{
    ForEach ($User in $Users)
    {
        $path = "\\$Computer\c$\Users\$User\Appdata"
        Write-Host $path
    }
}

我想我需要的只是逻辑方面的帮助。

双引号缺失,这不是原因吗

ForEach ($computer in $computers)
{
    Foreach ($User in $Users)
    {
        $path = "\\$Computer\c$\Users\$user\Appdata"
        Write-Host $path
    }
}

据我所知,你们拥有同样数量的计算机和用户

您是否正在寻找:

$computers = "Comp1","Comp2"
$users = "User1","User2"

for ($i=0 ; $i-lt$computers.Length ; $i++)
{
  $path = "\\$($Computers[$i])\c$\Users\$($users[$i])\Appdata"
  Write-Host $path  
}

什么是
$c
?@derloopkat,我想你是在问
c$
,那就是用UNC路径表示远程计算机上的c:drive。嗨,亨东,那只是一个打字错误。我在脚本中对路径使用了双引号。嗨,JPBlanc,是的,总是有与计算机相同数量的用户。我按原样测试了您的脚本,不幸的是返回:\\Comp1\c$\Users\\Appdata无法索引到空数组中。在第6行,char:43+$path=“\\$($Computers[$i])\c$\Users\$($user[$i])\Appdata”+~~~~~~~~~~~~~+CategoryInfo:InvalidOperation:(:)[],RuntimeException+FullyQualifiedErrorId:NullArray。我想它可能会与我将尝试的一些操作一起工作。谢谢你到目前为止的帮助。嗨,JPBlanc-它现在可以工作了!我刚刚在第6行中将$user变量更改为$users。非常感谢你!没错,错了,现在没问题了。你可以把问题放在回答的地方。
$computers = "Comp1","Comp2"
$users = "User1","User2"

for ($i=0 ; $i-lt$computers.Length ; $i++)
{
  $path = "\\$($Computers[$i])\c$\Users\$($users[$i])\Appdata"
  Write-Host $path  
}