【问题标题】:Powershell with Robocopy and CSV files [duplicate]带有 Robocopy 和 CSV 文件的 Powershell [重复]
【发布时间】:2018-02-27 09:11:32
【问题描述】:

所以我在 powershell 上很绿色,我已经四处寻找类似的问题,但似乎无法找出我的问题是什么。我的 CSV 中包含来自活动目录的用户名,如果 @{user= } 不存在则可以使用。我很高兴自己能走到这一步,但似乎我无法将它推过终点线。请帮助 StackOverFlow 用户!

$csvFile = 'C:\scripts\HomeDirectory\CN\CN-homedirectory.csv'
$SrcHome = '\\ch-hz-usrhome1\e$\Home\'
$DstHome = '\\us-svr-bk2\d$\files\CN_Files\'

  Import-Csv $csvFile -Delimiter ";" | ForEach-Object {
   $srcDoc = "$("$SrcHome$_.User")"
   $dstDoc = "$("$DstHome$_.User\UsersHomeDrive")"

    RoboCopy $srcDoc $dstDoc /Z /SEC /MIR /COPY:DAT /r:10 /w:40 /log+:C:\scripts\HomeDirectory\CN\CN_UserData.log
  }

当我查看日志文件时,我看到以下内容:

Source : \\ch-hz-usrhome1\e$\Home\@{User=xyu}.User\
Dest : \\us-svr-bk2\d$\files\CN_Files\@{User=xyu}.User\UsersHomeDrive\

【问题讨论】:

    标签: powershell csv robocopy


    【解决方案1】:

    如果要在字符串中扩展对象的属性,则需要使用subexpression operator$()

    构建路径的更好方法是使用Join-Path

    $srcDoc = Join-Path $SrcHome $_.User
    $dstDoc = Join-Path $DstHome (Join-Path $_.User "UsersHomeDrive")
    

    【讨论】:

    • 非常感谢!我觉得自己像个白痴,修复起来如此简单。它的赞赏!
    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多