2014-02-27 59 views
2

我試圖編寫一個腳本,將從一個網絡位置複製文件,然後將其複製到用戶的漫遊配置文件列表[也在網絡共享上]。用戶輸入到csv作爲輸入。將單個文件複製到多個目錄[覆蓋如果有]

漫遊配置文件都在\ FS-11 \型材[名稱] \應用程序數據\漫遊\

cls 
$input = Import-csv "\\fs-12\temp\input.csv" 
$source = "\\fs-12\temp\filename.txt" 

Function copyFile { 
    Param([string] $_username) 
    Copy-Item -path $source -Destination "\\fs-11\profiles\"$_username"\AppData\Roaming\" -Force 
    write-host ("filename.txt written to "$_username"'s profile") 
} 

foreach ($user in $input) { 
    copyFile $user.username 
} 

這是投擲以下...

ERROR:在表達意外標記 '_username'或聲明。 copy2.ps1(10):錯誤:在line:10字符:51 ERROR:+寫主機( 「的System.mdw寫入」 $ _username < < < < 「個人資料」) ERROR:+ CategoryInfo: ParserError:(_username:字符串)[],ParseException的 ERROR:+ FullyQualifiedErrorId:UnexpectedToken 錯誤:

回答

3

您終止您的字符串,然後重新打開它。你必須用反引號字符「逃避」雙引號。

改變這一行:

write-host ("filename.txt written to "$_username"'s profile") 

這樣:

write-host ("filename.txt written to `"$_username`"'s profile") 
+1

優秀。代表投票,但需要一些代表。 – soMuch2Learn

+1

謝謝 - 我upvoted你的問題。這應該有助於:) –

1

來自各地的$ _username變量只取報價並刪除括號像這樣:

write-host "filename.txt written to $_username's profile" 
相關問題