2017-09-18 6 views
1

私はpowershellで非常に緑色で、同様の問題を見回しましたが、私の問題点を見つけることができません。 CSVにはアクティブディレクトリのユーザー名があり、@{user= }が存在しない場合は機能します。私はこれまでのところ満足していることに満足していましたが、フィニッシュラインではそれを押し込めないようです。 StackOverFlowのユーザーを助けてください!RobocopyとCSVファイルを持つPowershell

$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\ 

答えて

1

あなたは、文字列に展開されるオブジェクトのプロパティをしたい場合は、あなたがsubexpression operator$()を使用する必要があります。

パスを構築するためのより良い方法はJoin-Pathを使用することです:

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

本当にありがとうございました!私はそれを修正するのがとても簡単な馬鹿のように感じます。そのappreaciated! – jodokast89

関連する問題