我正在尝试编写一个脚本,该脚本将从一个网络位置复制文件,然后将其复制到用户漫游配置文件列表中[也在网络共享上]。用户输入csv作为输入。
漫游配置文件位于\ fs-11 \ profiles [name] \ AppData \ Roaming \
上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
}
这引发了以下......
错误:意外的令牌' _username'在表达或陈述中。 copy2.ps1(10):错误:在行:10个字符:51 错误:+写主机(" System.mdw写入" $ _用户名<<<<"'''''''' 错误:+ CategoryInfo:ParserError:(_ username:String)[],ParseException 错误:+ FullyQualifiedErrorId:UnexpectedToken ERROR:
答案 0 :(得分:3)
您正在终止字符串并重新打开它。你必须用反引号字符“转义”双引号。
更改此行:
write-host ("filename.txt written to "$_username"'s profile")
到此:
write-host ("filename.txt written to `"$_username`"'s profile")
答案 1 :(得分:1)
只需从$ _username变量周围取出引号并删除括号,如下所示:
write-host "filename.txt written to $_username's profile"